https://developer.apple.com/videos/wwdc/2015/?id=711 @ 5:55
Nie mogę dodać tego do mojej listy info.plist. Nie ma wartości. Używam XCode w wersji 7.0 beta (7A121l) i testuję na iOS9.
Ponieważ nie mogę dokładnie zadeklarować, jakiego adresu URL chcę, jak widać na filmie, ciągle otrzymuję komunikat „Usługa App Transport Security zablokowała ładowanie zasobu HTTP (http: //) w postaci zwykłego tekstu, ponieważ jest niezabezpieczona. Tymczasowe wyjątki można skonfigurować za pośrednictwem Plik Info.plist ”błędy.
Jednak wydaje mi się, że nie jestem w stanie go skonfigurować. Jakieś pomysły?
ios
objective-c
xcode
ios9
chris P
źródło
źródło
Odpowiedzi:
spróbuj Z tym --- pracował dla mnie w Xcode-beta 4 7.0
Jeszcze jedna opcja, jeśli chcesz wyłączyć ATS, możesz użyć tego:
Ale to wcale nie jest zalecane. Serwer powinien mieć certyfikaty SSL, aby nie dochodziło do wycieków prywatności.
źródło
<key>NSAllowsArbitraryLoads</key> <true/><key>NSExceptionDomains</key>
W przeciwnym razie dla mnie nie zadziałało to z jakiegoś powoduMusisz tylko dodać klucz NSAllowsArbitraryLoads do YES w słowniku NSAppTransportSecurity w pliku info.plist.
Na przykład,
źródło
To nie działało dla mnie, ale to zadziałało:
źródło
<true/>
zamiast<YES/>
</dict>
i</plist>
tagi:Dla wyjaśnienia ... Zawsze należy używać protokołu httpS
Ale możesz to ominąć, dodając wyjątek:
źródło
Xcode 8.2, iOS 10
źródło
Zaktualizuj odpowiedź (po wwdc 2016):
App Transport Security, czyli ATS, to funkcja wprowadzona przez firmę Apple w systemie iOS 9. Gdy ATS jest włączony, wymusza na aplikacji łączenie się z usługami sieciowymi za pośrednictwem połączenia HTTPS zamiast niezabezpieczonego protokołu HTTP.
Jednak programiści mogą nadal wyłączyć ATS i zezwolić swoim aplikacjom na wysyłanie danych przez połączenie HTTP, jak wspomniano w powyższych odpowiedziach. Pod koniec 2016 roku Apple wprowadzi ATS jako obowiązkowe dla wszystkich programistów, którzy chcą udostępniać swoje aplikacje w App Store. połączyć
źródło
Umożliwi to połączenie z .com .net .org
źródło
źródło
Aby wyjaśnić nieco więcej na temat odpowiedzi ParaSara: Zabezpieczenia transportu aplikacji staną się obowiązkowe, a próba ich wyłączenia może spowodować odrzucenie aplikacji.
Jako programista możesz wyłączyć zabezpieczenia App Transport, jeśli Twój kod sieciowy z nimi nie współpracuje i chcesz kontynuować inne prace rozwojowe przed naprawieniem jakichkolwiek problemów. Powiedzmy, że w pięcioosobowym zespole cztery osoby mogą kontynuować pracę nad innymi rzeczami, podczas gdy jeden rozwiązuje wszystkie problemy. Możesz również wyłączyć zabezpieczenia App Transport jako narzędzie do debugowania, jeśli masz problemy z siecią i chcesz sprawdzić, czy są one spowodowane zabezpieczeniami App Transport. Jak tylko się zorientujesz, powinieneś natychmiast go ponownie włączyć.
Rozwiązanie, którego musisz użyć w przyszłości, to w ogóle nie używać protokołu HTTP, chyba że używasz serwera innej firmy, który nie obsługuje protokołu HTTPS. Jeśli Twój własny serwer nie obsługuje protokołu HTTPS, Apple będzie miał z tym problem. Nawet w przypadku serwerów firm trzecich nie założyłbym się, że Apple to akceptuje.
To samo dotyczy różnych kontroli bezpieczeństwa serwera. W pewnym momencie Apple zaakceptuje tylko uzasadnione wyjątki.
Ale przede wszystkim weź pod uwagę to: zagrażasz prywatności swoich klientów. To wielkie nie-nie w mojej książce. Nie rób tego. Napraw swój kod, nie pytaj o pozwolenie na uruchomienie niebezpiecznego kodu.
źródło
Jedna zła wiadomość dla programistów korzystających z NSAppTransportSecurity.
https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/
źródło
W wierszu poleceń powłoki Mac użyj następującego polecenia:
Polecenie doda wszystkie niezbędne wartości do pliku plist.
źródło
XCODE 8, Swift 3: Musisz dodać wiersz: **
** na info.plist informacje wewnętrzne Lista nieruchomości.
źródło
Xcode 9.2, Swift 4, to działa dla mnie.
źródło