2015-07-21 4 views
17

Die neue ATS von iOS 9 beteiligt verursachen viele http-bezogene Funktionalitäten funktionieren nicht mehr. Ich muss alle HTTP-Request-URL in eine Whitelist hinzufügen oder ich könnte einfach den ATS deaktivieren, indem Sie NSAllowsArbitraryLoads auf YES setzen.Lehnt der App Store die Übermittlung ab, wenn NSAllowsArbitraryLoads auf YES gesetzt ist?

Weiß jemand, ob der App Store die Einreichung ablehnt, wenn die NSAllowsArbitraryLoads auf YES gesetzt wurde?

+0

Es gibt keinen offensichtlichen Grund für die Ablehnung, da NSAllowsArbitraryLoads ein Teil der öffentlichen API ist und dokumentiert ist. Wenn Sie alle Hosts auflisten können, die Ihre App verwendet, ist es wahrscheinlich besser, sie zur PLIST-Datei hinzuzufügen, anstatt eine Platzhalter-Ausnahme zu verwenden. Beachten Sie auch, dass in diesem Fall die Liste der Hosts für jeden zugänglich ist, der einfachen Text lesen kann. – Vladimir

+0

Meine Vermutung ist, dass es in Zukunft eine beängstigende Nachricht an Benutzer bei der App-Installation geben wird. – funkybro

+0

Wer weiß, ob das auch für MacOS-Anwendungen gilt? –

Antwort

14

UPDATE: Apple Apps ablehnen kann nicht nach dem Ende Dezember ATS konformen 2016.

Source

jedoch Wenn Sie eine http:// Ressource nur in Web laden müssen (UIWebView/WKWebView/SafariViewController) sollte dann folgendes genügen.

Hinweis: Dieser Schlüssel nur von iOS verfügbar ist 10.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoadsInWebContent</key> 
    <true/> 
</dict> 
+0

Das ist eine große Auswirkung. Betrifft dies nur die iOS-Netzwerk-APIs. Wie wäre es mit den 3rd-Party-Bibliotheken wie curl? – jayatubi

+0

Ich denke, es gibt Ausnahmen für bereits verschlüsselte Massendaten, wie Media-Streaming. Ich bin mir aber nicht sicher, ob ich locken kann –

+0

@Vijayts Bitte erwähnen Sie auch, dass dieser Schlüssel nur in iOS 10.0+ unterstützt wird. –

2

Alle Verbindungen, die die APIs NSURLConnection, CFURL oder NSURLSession verwenden, verwenden das Standardverhalten für die App-Transportsicherheit in Apps, die für iOS 9.0 oder höher und OS X 10.11 oder höher erstellt wurden. Verbindungen, die den Anforderungen nicht entsprechen, schlagen fehl.

Sie können jedoch Ausnahmen für das Standardverhalten in der Info.plist-Datei in Ihrer App oder Erweiterung angeben. Verwenden Sie die Schlüssel in der Eigenschaftsliste für bestimmte Ausnahmen oder deaktivieren Sie die App-Transportsicherheit. Tabelle 1-1 zeigt die Schlüssel und ihre Typen und verwendet Einrückungen zur Angabe der Struktur. Hier

ist die Quelle Link: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html

18

Vielen Dank für jedermanns Antwort.

Die gute Nachricht ist Apple Accepted meine App mit NSAllowsArbitraryLoads auf YES gesetzt.

UPDATE (Danke @Vijayts): Apple ablehnen Apps nicht 2016.

Source

jedoch nach dem Ende Dezember ATS konformen, Wenn Sie eine http laden müssen: // Ressource nur Im Web (UIWebView/WKWebView/SafariViewController) sollte dann folgendes genügen.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoadsInWebContent</key> 
    <true/> 
</dict> 
+1

Das Setzen von NSAllowsArbitraryLoads auf YES funktioniert also nicht nach Dezember 2016? Ist das nicht Teil der ATS-Spezifikation? – Henning

+1

@ Henning scheint wahr zu sein. –

+0

Wäre es nicht besser, die akzeptierte Antwort zu @ Vijayts Antwort zu ändern? –

7

Es scheint Apple seine Pläne geändert hat:

Unterstützung App Transport Security

zu geben, Sie zusätzliche Zeit zur Vorbereitung, diese Frist wurde verlängert und wir werden eine andere Aktualisierung, wenn eine neue Frist bestätigt ist. https://developer.apple.com/news/?id=12212016b

3

Neueste wir von Apple über NSAllowsArbitraryLoads hörte, war im Dezember 2016. https://developer.apple.com/news/?id=12212016b

Apple akzeptiert immer noch neue Apps und Updates. Meine neue App wurde im April 2017 mit NSAllowsArbitraryLoads auf YES freigegeben. Ich habe kürzlich auch Updates eingereicht, keine Probleme, keine Ablehnung.

+0

danke für die Antwort. Hoffe, meine App wird durchgehen ... – sajaz

0

Ich habe eine App, mit der Benutzer eine URL angeben können, die während der Ausführung in einer Webansicht angezeigt werden soll. Diese URL kann eine HTTP URL sein. Aus diesem Grund habe ich NSAllowsArbitraryLoads auf ja eingestellt.

Ich habe ein Update für diese App nach Dezember 2016 eingereicht und hatte keine Probleme.

Mein Plist gibt auch NSAllowsArbitraryLoadsInWebContent an und ich spezifiziere Ausnahmen, die TLS für bekannte Webdienste aktivieren, die von meiner App verwendet werden, wenn TLS unterstützt wird.

I enthalten einfach eine Rezension Notiz, die erklärte, dass NSAllowsArbitraryLoadsInWebContent nicht ausreichend ist, da meine App auf iOS unterstützt 9.

Ich habe nie auch nur auf diese eine Frage von App Bewertung hatte.

Verwandte Themen