我正在MacOS XCode 12.3、模拟器iOS 14.3上进行开发,试图连接到本地网络上机器上的开发服务器。我在/etc/hosts
中有一个条目指定了开发服务器的地址。这曾经有效,现在仍然适用于Mac应用程序。
模拟器中的应用程序无法访问服务器。模拟器中的Safari也无法访问服务器。
日志显示nil host used in call to allowsSpecificHTTPSCertificateForHost
和nil host used in call to allowsAnyHTTPSCertificateForHost:
我已经将Allow Arbitrary Loads
和Allow Arbitrary Loads in Web Content
设置为true,并在Info.plist
中将服务器添加到Exception Domains
。
如何解决此问题?
事实证明模拟器不再使用/etc/hosts
。我设置了一个本地DNS服务器dnsmasq
,允许模拟器再次访问该服务器。
请参阅https://zhimin-wen.medium.com/setup-local-dns-server-on-macbook-82ad22e76f2a
将<servername>
和<ipaddress>
替换为您的详细信息。
> brew install dnsmasq
> cp /usr/local/etc/dnsmasq.conf /usr/local/etc/dnsmasq.conf.orig
> echo "conf-dir=/usr/local/etc/dnsmasq.d/,*.conf" > /usr/local/etc/dnsmasq.conf
> echo "address=/<servername>/<ipaddress>" > /usr/local/etc/dnsmasq.d/<servername>
> sudo mkdir -p /etc/resolver
> echo "nameserver 127.0.0.1"> /etc/resolver/<servername>
> sudo brew services start dnsmasq
测试DNS服务:
> dig <servername> @localhost +short
> 192.168.20.21