2017-02-15 4 views
0

Ich arbeite an einer in cordova integrierten Mobile App, die REST API verwendet. Die App funktioniert zwar gut, aber ich habe eine Share Extension mit xcode, für die ich diesen Fehler bei einem API-Aufruf bekomme.iOS 10, Swift 3 API-Aufruf SSL-Fehler

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} 

Ich habe dies in der 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

hast du "www.example.com" durch deine Domain ersetzt ??? –

+0

ja, ich habe das zu meiner Domain – snowwalker

+0

haben Sie versucht, arbitrary Last funktioniert es? –

Antwort

1

Ihr Server SSL ist wahrscheinlich nicht sicher oder korrekt installiert.

Sie sollten überprüfen, ob es mit einigen der verfügbaren Webservices oder etwas installiert ist.

Example

or this one

Es kann auch sein, dass Ihr SSL selbstsignierten und einfach nicht vertrauenswürdig von iOS ist als vertrauenswürdig.

0

Zuerst testen Sie Ihre Server mit:

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

Sie sagten, Ihre Haupt-App ist gut arbeiten, so dass die Frage in Ihrer Erweiterung plist sein kann.

Haben Sie den gleichen ATS-Eintrag in Ihrer Nebenstelle plist hinzugefügt?

+0

Ich habe es nur bei ** Allowing Arbitrary Loads **, ** TLSv1.0 mit PFS deaktiviert **, ** TLSv1.0 mit PFS deaktiviert und unsicheren HTTP erlaubt **. Ich musste keinen zusätzlichen Eintrag für die NSAppTransportSecurity für die Hauptanwendung hinzufügen – snowwalker