iOS9 中的应用程序传输安全和 IP 地址
App Transport Security and IP addresses in iOS9
我在我的开发箱上使用本地服务器 运行 开发我的 iOS 应用程序。在设备上进行测试时,我直接通过 IP 地址连接,该地址通过 HTTP 而不是 HTTPS(因此我在开发过程中不必处理自签名证书,设备无论如何都不会喜欢)。
我认为这就足够了:
但是,如果不添加 NSAllowsArbitraryLoads = YES
,也就是这样:
,就无法让它工作
现在,我将不得不记住在滚动生产构建时而不是在开发期间删除它...arg。 NSExceptionDomains
是否应该使用 IP 地址,如果不能,在不启用 NSAllowsArbitraryLoads
的情况下还有什么我可以做的吗?
硬编码 IP 地址在 iOS9 中不起作用。我也遇到了同样的问题。
尝试了可用解决方案的所有排列和组合。
最后,不得不使用一个合适的域名。
因此,NO.In iOS9 您无法摆脱硬编码的 IP 地址。
is there anything else I can do without also enabling NSAllowsArbitraryLoads
?
一种解决方法是使用 xip.io, as explained by QJeffR in this Apple Developer Forums thread (which was shared by David L in ):
A DNS call to (for example) 10.0.1.8.xip.io will resolve to 10.0.1.8, allowing use of the domain instead of the IP address for the NSExceptionDomains
key.
正如@PanxShaz 所说,您不能输入硬编码的 IP 地址,但您可以使用一个简单的解决方法:
使用 sudo
打开您的 /etc/hosts
文件并为您的 IP 地址添加一个新的本地域名。示例:
192.168.99.100 docker-host.localhost
然后刷新你的 DNS :
dscacheutil -flushcache
最后在您的应用程序传输安全例外中使用这个新的本地域。
如果您的目标是 iOS 10+,只需设置 NSAllowsLocalNetworking 标志。
我在我的开发箱上使用本地服务器 运行 开发我的 iOS 应用程序。在设备上进行测试时,我直接通过 IP 地址连接,该地址通过 HTTP 而不是 HTTPS(因此我在开发过程中不必处理自签名证书,设备无论如何都不会喜欢)。
我认为这就足够了:
但是,如果不添加 NSAllowsArbitraryLoads = YES
,也就是这样:
现在,我将不得不记住在滚动生产构建时而不是在开发期间删除它...arg。 NSExceptionDomains
是否应该使用 IP 地址,如果不能,在不启用 NSAllowsArbitraryLoads
的情况下还有什么我可以做的吗?
硬编码 IP 地址在 iOS9 中不起作用。我也遇到了同样的问题。 尝试了可用解决方案的所有排列和组合。 最后,不得不使用一个合适的域名。
因此,NO.In iOS9 您无法摆脱硬编码的 IP 地址。
is there anything else I can do without also enabling
NSAllowsArbitraryLoads
?
一种解决方法是使用 xip.io, as explained by QJeffR in this Apple Developer Forums thread (which was shared by David L in
A DNS call to (for example) 10.0.1.8.xip.io will resolve to 10.0.1.8, allowing use of the domain instead of the IP address for the
NSExceptionDomains
key.
正如@PanxShaz 所说,您不能输入硬编码的 IP 地址,但您可以使用一个简单的解决方法:
使用
sudo
打开您的/etc/hosts
文件并为您的 IP 地址添加一个新的本地域名。示例:192.168.99.100 docker-host.localhost
然后刷新你的 DNS :
dscacheutil -flushcache
最后在您的应用程序传输安全例外中使用这个新的本地域。
如果您的目标是 iOS 10+,只需设置 NSAllowsLocalNetworking 标志。