it-swarm.com.de

Wie kann ich meiner info.plist-Datei NSAppTransportSecurity hinzufügen?

https://developer.Apple.com/videos/wwdc/2015/?id=711 @ 5: 55

Ich kann dies anscheinend nicht zu meiner info.plist hinzufügen. Es gibt keinen Wert dafür. Ich verwende XCode Version 7.0 Beta (7A121l) und teste auf iOS9.

Da ich nicht genau festlegen kann, welche URLs ich im Video sehen möchte, erhalte ich immer wieder die Meldung "App Transport Security hat das Laden von Klartext-HTTP-Ressourcen (http: //) blockiert, da diese unsicher sind. Temporäre Ausnahmen können über Ihre App konfiguriert werden Fehler in der Datei "Info.plist".

Es scheint jedoch nicht möglich zu sein, es zu konfigurieren. Irgendwelche Ideen?

119
chris P

try With this --- hat bei mir in Xcode-Beta 4 7.0 funktioniert

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

Eine weitere Option, wenn Sie ATS deaktivieren möchten, können Sie dies verwenden:

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

Dies wird aber überhaupt nicht empfohlen. Der Server sollte über die SSL-Zertifikate verfügen, damit keine Datenschutzverluste auftreten.

120
Ashish

Sie müssen nur den NSAllowsArbitraryLoads-Schlüssel zu YES im NSAppTransportSecurity-Wörterbuch in Ihrer info.plist-Datei hinzufügen.

Zum Beispiel,

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

enter image description here

88
Hiren Varu

Das hat bei mir nicht funktioniert, aber das hat den Trick gemacht:

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

Nur zur Verdeutlichung ... Sie sollten immer httpS verwenden

Sie können dies jedoch umgehen, indem Sie die folgende Ausnahme hinzufügen:

enter image description here

21
Manuel Pardo

Xcode 8.2, iOS 10

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
9
Oleg Malovichko

Antwort aktualisieren (nach wwdc 2016):

IOS apps will require secure HTTPS connections by the end of 2016

App Transport Security (ATS) ist eine Funktion, die Apple in iOS 9 eingeführt hat. Wenn ATS aktiviert ist, wird eine App gezwungen, über eine HTTPS-Verbindung eine Verbindung zu Webdiensten herzustellen, anstatt über nicht sicheres HTTP.

Entwickler können ATS jedoch weiterhin ausschalten und zulassen, dass ihre Apps Daten über eine HTTP-Verbindung senden, wie in den obigen Antworten angegeben. Ende 2016 macht Apple ATS für alle Entwickler verbindlich , die ihre Apps an den App Store senden möchten. Link

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>uservoice.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
2
Santhosh Legent
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>net</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>org</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Auf diese Weise können Sie eine Verbindung zu .com .net .org herstellen

2
Subirdcom

Verwenden Sie in der Mac-Shell-Befehlszeile den folgenden Befehl:

plutil -insert NSAppTransportSecurity -xml "<array><string> hidden </string></array>" [location of your xcode project]/Info.plist 

Der Befehl fügt alle erforderlichen Werte in Ihre plist-Datei ein.

1
Avi Levin

XCODE 8, Swift 3: Sie müssen eine Zeile hinzufügen: **

"Sicherheitseinstellung für App-Transport"

** in der info.plist inside information Eigenschaftsliste.

1

Um ein bisschen mehr über die Antwort von ParaSara zu erklären: App Transport-Sicherheit wird wird obligatorisch, und der Versuch, sie auszuschalten, kann dazu führen, dass Ihre App abgelehnt wird.

Als Entwickler können Sie die App Transport-Sicherheit deaktivieren, wenn Ihr Netzwerkcode damit nicht funktioniert und Sie andere Entwicklungen fortsetzen möchten, bevor Sie Probleme beheben. Nehmen wir an, in einem Fünfteam können vier Mitarbeiter weiter an anderen Dingen arbeiten, während einer alle Probleme behebt. Sie können die App Transport-Sicherheit auch als Debugging-Tool deaktivieren, wenn Netzwerkprobleme auftreten und Sie überprüfen möchten, ob diese durch die App Transport-Sicherheit verursacht werden. Sobald Sie es wissen, sollten Sie es sofort wieder einschalten.

Die Lösung, die Sie in Zukunft müssen verwenden, besteht darin, http überhaupt nicht zu verwenden, es sei denn, Sie verwenden einen Drittanbieter-Server, der https nicht unterstützt. Wenn Ihr eigener Server kein https unterstützt, wird Apple ein Problem damit haben. Selbst bei Servern von Drittanbietern würde ich nicht wetten, dass Apple) akzeptiert es.

Gleiches gilt für die verschiedenen Überprüfungen der Serversicherheit. Irgendwann akzeptiert Apple nur noch berechtigte Ausnahmen.

Bedenken Sie jedoch vor allem Folgendes: Sie gefährden die Privatsphäre Ihrer Kunden. Das ist ein großes Nein-Nein in meinem Buch. Tu das nicht. Korrigieren Sie Ihren Code, fragen Sie nicht nach der Erlaubnis, unsicheren Code auszuführen.

1
gnasher729

Xcode 9.2, Swift 4, das funktioniert bei mir.

<key>App Transport Security Settings</key>
<dict>
    <key>Allow Arbitrary Loads</key>
    <true/>
</dict>
1
hungmi

Eine schlechte Nachricht für Entwickler, die NSAppTransportSecurity verwenden.

UPDATE:
[Apple will require HTTPS connections for iOS apps by the end of 2016]

https://techcrunch.com/2016/06/14/Apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/

1
Kahng