2017-02-15 87 views
0

我正在制作使用REST API的cordova中构建的移动应用程序。该应用程序本身运行良好,但我有一个共享扩展与xcode构建,我得到这个错误的API调用。iOS 10,Swift 3 API调用SSL错误

Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9824, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x7fe888624290 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9824, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9824}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://www.example.com/, NSErrorFailingURLStringKey=https://www.example.com/, _kCFStreamErrorDomainKey=3} 

我有这样的Info.plist中

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>www.example.com</key> 
      <dict> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <false/> 
       <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
       <false/> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionMinimumTLSVersion</key> 
       <string>TLSv1.0</string> 
       <key>NSRequiresCertificateTransparency</key> 
       <false/> 
      </dict> 
     </dict> 
    </dict> 
+1

您是否已将您的网域替换为“www.example.com”? –

+0

是的,我有这个到我的域名 – snowwalker

+0

你试过任意加载它工作吗? –

回答

1

您的服务器SSL可能是不安全的或正确安装。

你应该检查它是否正确地安装了一些可用的Web服务或那里。

Example

or this one

它还可以为你的SSL是自签名和信任的根本iOS不信任。

0

首先,测试服务器:

/usr/bin/nscurl --ats-diagnostics www.mydomain.com

你说你的主要应用是很好的工作,所以这个问题可能是在扩展的plist。

您是否在扩展plist中添加了相同的ATS条目?

+0

我让它通过**允许任意负载**,** TLSv1.0禁用PFS **,** TLSv1.0禁用PFS和不安全的HTTP允许**。 我不必为主应用程序的NSAppTransportSecurity添加任何额外条目 – snowwalker

相关问题