使用Xcode 7.1的iOS 9中的NSURLSession / NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)

时间:2016-08-30 16:18:18

标签: ios xcode http nsurlsession salesforce-ios-sdk

我使用iOS 9作为目标&使用Xcode 7.1,尝试了所有的ATS最佳解决方案,但是没有用。以下是控制台上的以下错误说明。如果有任何建议,我将被迫。

这里的一些关键事项是 -

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

Error excluding Main.db from backup Error Domain=NSCocoaErrorDomain Code=4 "The file “Main.db” doesn’t exist." UserInfo={NSURL=file:///Users/Raj/Library/Developer/CoreSimulator/Devices/BC3A0589-3B9A-4AFD-8F2A-B1C92FA341DD/data/Containers/Data/Application/70B3043A-8553-41E5-A147-8508D08BF3E6/Documents/Main.db, NSFilePath=/Users/Raj/Library/Developer/CoreSimulator/Devices/BC3A0589-3B9A-4AFD-8F2A-B1C92FA341DD/data/Containers/Data/Application/70B3043A-8553-41E5-A147-8508D08BF3E6/Documents/Main.db, NSUnderlyingError=0x798465c0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
2016-08-30 21:09:10.867 GFIM[80653:484899] SFOAuthCredentials:revokeRefreshToken: refresh token revoked. Cleared identityUrl, instanceUrl, issuedAt fields
2016-08-30 21:09:10.871 GFIM[80653:484899] INFO|0|SFPasscodeManager|Resetting passcode upon logout.

SFOAuthCredentials:revokeRefreshToken: refresh token revoked. Cleared identityUrl, instanceUrl, issuedAt fields

这些可能是问题的原因。

2016-08-30 21:09:19.095 GFIM[80653:484899] SFOAuthCoordinator:webViewDidStartLoad: host=test.salesforce.com : path=/
2016-08-30 21:09:19.863 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:19.983 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:20.016 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:20.054 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:20.194 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:20.956 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
2016-08-30 21:09:38.285 GFIM[80653:484899] SFOAuthCoordinator:webView:shouldStartLoadWithRequest: (navType=1): host=test.salesforce.com : path=/
2016-08-30 21:09:38.311 GFIM[80653:484899] SFOAuthCoordinator:webViewDidStartLoad: host=test.salesforce.com : path=/
2016-08-30 21:09:38.834 GFIM[80653:484899] SFOAuthCoordinator:webView:shouldStartLoadWithRequest: (navType=1): host=5-prod--stg.cs30.my.salesforce.com : path=/secur/frontdoor.jsp

4 个答案:

答案 0 :(得分:11)

从iOS 9开始Apple强制使用特定主机发出HTTP请求以实现安全目的。 //也可以在iOS 10上使用Swift 3

为此,您需要将NSAppTransportSecurity Dictionary添加到Projet的.plist文件中。然后你的plist看起来如下所示。

Tap to see .Plist File Image

这里NSAllowArbitraryLoads基本上意味着连接到任何东西(这可能是坏的)。相反,您可以添加特定主机作为连接。

enter image description here

答案 1 :(得分:10)

如果您尝试在启用ATS的情况下发出HTTP请求(使用NSURLSession或像AFNetworking这样的库),您会看到这样的错误。

以下是完全禁用ATS的方法。打开Info.plist,并添加以下行:

<key>NSAppTransportSecurity</key>
<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
</dict>

您的info.plist文件应如下所示

enter image description here

请参阅此帖子:https://stackoverflow.com/a/31077483/6763322

答案 2 :(得分:5)

我只是在设备中运行而不是模拟器。它开始工作

答案 3 :(得分:0)

对于那些在xcode 8中工作的人......这会对你有所帮助...... enter image description here