在此之前,我想列出我已阅读并尝试实现答案的帖子(避免重复):
- App Transport Security issue in iOS 9 and iOS 10
- http://iosdevtips.co/post/121756573323/ios-9-xcode-7-http-connect-server-error
- http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/
我正在开发一个 SDK,并且我已经创建了一些 UI 测试。我试图不连接到后端系统并通过在测试时在本地机器上运行的 stub 服务器来模拟它们。所有请求都必须发送到此服务器。
我创建了一个永远不会提交到 App Store 的虚拟应用程序。通过这个应用程序,我计划测试 SDK 的屏幕。我遵循了上面的帖子和文章,并在虚拟应用程序的 Info.plist 文件中包含了一个异常(exception),即与我的本地主机服务器的连接不安全。它看起来像下面这样:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
是的,我允许各种异常(exception)情况。网络响应不会提示应用程序没有与本地主机的不安全连接的异常,而只是返回以下内容:
[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x170248940 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://localhost:7878/endpoint, NSErrorFailingURLKey=http://localhost:7878/endpoint, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, NSLocalizedDescription=Could not connect to the server.}
[Timeline]: Timeline: { "Request Start Time": 510144201.835, "Initial Response Time": 510144201.860, "Request Completed Time": 510144201.860, "Serialization Completed Time": 510144201.860, "Latency": 0.025 secs, "Request Duration": 0.025 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.025 secs }
我查看了服务器日志,没有任何报告。因此,我假设它不会完全命中服务器。
如有任何帮助,我们将不胜感激。 :)
谢谢
最佳答案
正如@Teffi 在评论中指出的那样,我在无法访问在本地计算机上运行的本地主机服务器的设备上运行测试。
关于ios - 失败 : Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42553470/