2017-02-15 85 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

相關問題