2016-10-27 5 views
6

Apple hat angekündigt, dass NSAllowArbitraryLoads wird nicht bald funktionieren. Daher ist in iOS 10, ich habe dies in meinem info.plist:App Transport Sicherheitsproblem in iOS 9 und iOS 10

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>myAPIdomain</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
      </dict> 
     </dict> 
     <key>NSAllowsArbitraryLoadsInWebContent</key> 
     <true/> 
    </dict> 

Das für meine API-Anfrage und Inhalte in UIWebView arbeitet. In iOS9 wird NSAllowsArbitraryLoadsInWebContent jedoch nicht unterstützt und es wird empfohlen, NSAllowsArbitraryLoads für iOS 9-Unterstützung einzuschließen. Aber ich denke, das wird meine NSExceptionDomains Einstellungen überschreiben? Wie kann ich HTTP-Anfragen für meine API und UIWebView auf iOS 9 und iOS 10 ausführen lassen und trotzdem der Apple-Regel folgen?

bearbeiten

für iOS unterstützt 9 und iOS 10:

<key>NSAppTransportSecurity</key> 
     <dict> 
      <key>NSExceptionDomains</key> 
      <dict> 
       <key>myAPIdomain</key> 
       <dict> 
        <key>NSIncludesSubdomains</key> 
        <true/> 
        <key>NSExceptionAllowsInsecureHTTPLoads</key> 
        <true/> 
       </dict> 
      </dict> 
      <key>NSAllowsArbitraryLoadsInWebContent</key> 
      <true/> 
      <key>NSAllowsArbitraryLoads</key> 
      <true/> 
     </dict> 
+1

Wenn Sie ältere Version als iOS 10 unterstützen, dann müssen Sie 'NSAllowsArbitraryLoads' verwenden, und ja dies wird auf iOS 9 und 10 gelten. Sie müssen nur in enthalten Ihre Überprüfungsanmerkungen, warum Sie 'NSAllowsArbitraryLoads' benötigen Wenn Sie spezifische Domänen haben, von denen Sie wissen, dass https funktioniert, können Sie eine Ausnahme für diese Domänen hinzufügen, um https – Paulw11

+0

@ Paulw11Thanks für Ihre schnelle Antwort zu aktivieren. Dies bedeutet, dass ich nur "NSAllowsArbitraryLoadsInWebContent" und "NSAllowsArbitraryLoads" zu meiner info.plist hinzufügen muss? – chengsam

+0

ja, das ist richtig – Paulw11

Antwort

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

Sie können die obige Bedingung verwenden, wenn Sie möchten, https nicht unterstützen (TLS 1.2). Aber Sie müssen sicherstellen, dass es sich um eine temporäre Lösung handelt. Von früher 2017 Apple machen https (TLS 1.2) als obligatorisch

+0

Das ist nicht wahr. Sie können weiterhin 'NSAllowsArbitraryLoads' verwenden, aber Sie müssen erklären, warum es erforderlich ist – Paulw11

+0

Ich weiß, dass Apple ab 2017' NSAllowsArbitraryLoads' strikt verwenden wird. Aber ich möchte auch iOS 9 unterstützen. Scheint 'NSAllowsArbitraryLoads' muss für die Unterstützung von iOS 9 benötigt werden. – chengsam

+0

Außerdem gibt es viele Geräte, wie eingebettete/IoT-Geräte, die niemals TLS unterstützen – Paulw11

Verwandte Themen