Bezpieczeństwo transportu zablokowało cleartext HTTP

Jakie ustawienie muszę umieścić w moim info.plist, aby włączyć tryb HTTP zgodnie z poniższym Komunikatem o błędzie?

Bezpieczeństwo transportu zablokowało zasób cleartext HTTP (http://) załaduj, ponieważ jest niepewny. Tymczasowe wyjątki można skonfigurować poprzez informacje o Twojej aplikacji.plik plist.

Xcode

Załóżmy, że moja domena to example.com.

Author: jww, 2015-07-06

23 answers

Jeśli używasz Xcode 8.0 i Swift 3.0 lub Swift 2.2 lub nawet Objective C:

Tutaj wpisz opis obrazka

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>example.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>
 273
Author: Anit Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-29 12:37:58

Użycie:

Tutaj wpisz opis obrazka

Musisz ustawić nsallowsarbitraryloads klucz YES Pod nsapptransportsecurity słownik w swoim .plik plist.

Konfiguracja Plist

 895
Author: CristiCh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:04:55

Oto ustawienia wizualnie:

Ustawienia wizualne dla NSAllowsArbitraryLoads w info.plist via Xcode GUI

 796
Author: William Cerniuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-14 20:35:12

Zobacz post na forumaplikacja bezpieczeństwo transportu?.

Także Strona Konfigurowanie WYJĄTKÓW Bezpieczeństwa Transportu aplikacji w systemach iOS 9 i OSX 10.11.

Na przykład możesz dodać konkretną domenę, taką jak:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>example.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>

Opcja leniwa to:

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

Uwaga:

info.plist jest plikiem XML, więc możesz umieścić ten kod mniej więcej w dowolnym miejscu wewnątrz pliku.

 690
Author: KMLong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 03:43:46

Jest to konfiguracja pozwalająca domenie specific używać HTTP zamiast HTTPS:

<key>NSAppTransportSecurity</key>
<dict>
      <key>NSAllowsArbitraryLoads</key> 
      <false/>
       <key>NSExceptionDomains</key>
       <dict>
            <key>example.com</key> <!--Include your domain at this line -->
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
       </dict>
</dict>

NSAllowsArbitraryLoads musi być false, ponieważ uniemożliwia wszystkie niebezpieczne połączenie, ale lista wyjątków umożliwia połączenie z niektórymi domenami bez HTTPS.

 302
Author: Sound Blaster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-15 14:28:35

Jest to szybkie obejście (ale nie zalecane), aby dodać to w pliście:

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

Co oznacza (według dokumentacji Apple):

NSAllowsArbitraryLoads
Wartość logiczna używana do wyłączania zabezpieczeń transportu aplikacji dla domen niewymienionych w słowniku NSExceptionDomains. Wymienione domeny używają ustawień określonych dla tej domeny.

Domyślna wartość NO wymaga domyślnego zachowania bezpieczeństwa transportu aplikacji dla wszystkich znajomości.

Naprawdę polecam linki: Które pomagają mi zrozumieć powody i wszystkie implikacje.

XML (w pliku Info.plist) poniżej "will": {]}

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>PAGE_FOR_WHICH_SETTINGS_YOU_WANT_TO_OVERRIDE</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Nie zezwala na dowolne wywołania dla wszystkich stron, ale dla PAGE_FOR_WHICH_SETTINGS_YOU_WANT_TO_OVERRIDE pozwoli, aby połączenia korzystały z protokołu HTTP.

Do powyższego XML można dodać:

<key>NSIncludesSubdomains</key>
<true/>

Jeśli chcesz zezwolić na niebezpieczne połączenia dla subdomen o podanym adresie.

Najlepszym podejściem jest blokowanie wszystkich dowolnych obciążeń (ustawionych na false) i dodawanie wyjątków, aby zezwalać tylko na adresy, o których wiemy, że są w porządku.

Dla zainteresowanych czytelników

2018 Aktualizacja:

Firma Apple nie zaleca wyłączania tej funkcji - więcej informacji można znaleźć w 207 session WWDC 2018 z więcej wyjaśnieniami dotyczącymi bezpieczeństwa

Pozostawienie oryginalnej odpowiedzi ze względów historycznych i fazy rozwoju

 125
Author: Julian Król,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-05 11:09:29

Dla tych z Was, którzy chcą mieć więcej kontekstu na dlaczego dzieje się tak, oprócz tego, jak to naprawić, przeczytaj poniżej.

Po wprowadzeniu systemu iOS 9, aby poprawić bezpieczeństwo połączeń między aplikacją a usługami sieciowymi, bezpieczne połączenia między aplikacją a jej usługami sieciowymi muszą być zgodne z najlepszymi praktykami. Najlepsze praktyki są egzekwowane przez App Transport Security do:
  • zapobiec przypadkowemu ujawnieniu, i
  • zapewnij domyślne zachowanie, które jest bezpieczne.

Jak wyjaśniono w App Transport Security Technote , podczas komunikacji z Twoją usługą internetową, bezpieczeństwo transportu aplikacji ma teraz następujące wymagania i zachowanie:

    Serwer musi obsługiwać co najmniej protokół Transport Layer Security (TLS) w wersji 1.2.
  • szyfry połączeń są ograniczone do tych, które zapewniają poufność transmisji (patrz lista szyfrów poniżej.)
  • certyfikaty muszą być podpisywane przy użyciu algorytmu skrótu SHA256 lub lepszego, z kluczem 2048-bitowym lub większym RSA lub 256-bitowym lub klawisz greater Elliptic-Curve (ECC).
  • nieprawidłowe certyfikaty powodują awarię i brak połączenia.
Innymi słowy, twoje żądanie usługi internetowej powinno: a.) używać HTTPS i B.) być szyfrowane przy użyciu protokołu TLS v1. 2 z zachowaniem tajemnicy przesyłania.

Jednak, jak wspomniano w innych postach, można zastąpić ten nowy zachowanie Z Bezpieczeństwa Transportu aplikacji poprzez określenie Niezabezpieczonej domeny w Info.plist aplikacji.


Aby nadpisać, musisz dodać NSAppTransportSecurity > NSExceptionDomains właściwości słownika do twojego Info.plist. Następnie dodasz domenę swojego serwisu internetowego do słownika NSExceptionDomains.

Na przykład, jeśli chcę ominąć zachowanie bezpieczeństwa transportu aplikacji dla usługi internetowej na hoście www.yourwebservicehost.com wtedy zrobiłbym co następuje:

  1. Otwórz aplikację w Xcode.

  2. Znajdź plik Info.plist w Nawigatorze projektu i kliknij prawym przyciskiem myszy na nim i wybierz Otwórz jako > Kod źródłowy opcja menu. Plik listy właściwości pojawi się w prawym okienku.

  3. Umieść następujący blok właściwości wewnątrz głównego słownika właściwości(pod pierwszym <dict>).


<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.example.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

Jeśli chcesz podać wyjątki dla dodatkowych domen, dodaj kolejną właściwość słownika poniżej NSExceptionDomains.

Aby dowiedzieć się więcej o kluczach, o których mowa powyżej, przeczytaj wspomnianą już technote.

 113
Author: whyceewhite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 03:52:53

Nie lubię edytować plist bezpośrednio. Można go łatwo dodać do plist używając GUI:

  • Kliknij na Info.plist w Nawigatorze po lewej.
  • Teraz zmień dane w obszarze głównym:

    • w ostatniej linii dodaj +
    • wprowadź nazwę grupy: ustawienia bezpieczeństwa transportu aplikacji
    • Kliknij prawym przyciskiem myszy na grupie i wybierz Add Row
    • Enter Zezwalaj Na Dowolne Ładowanie
    • Ustaw wartość po prawej stronie na Tak

Przykład

 64
Author: Vincent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-17 19:37:37

Apple Document 1

Apple Document 2

Istnieją na to dwa rozwiązania:

Rozwiązania 1 :

  1. w pliku Info.plist Dodaj słownik z kluczem 'NSAppTransportSecurity'
  2. Dodaj kolejny element w słowniku za pomocą klucza 'Allow Arbitrary Loads'

Plist struktura powinna wyglądać tak, jak pokazano na poniższym obrazku.

Rozwiązanie 1

Rozwiązanie 2 :

  1. w pliku Info.plist Dodaj słownik z kluczem 'NSAppTransportSecurity'
  2. Dodaj kolejny element w słowniku za pomocą klucza 'NSExceptionDomains'
  3. Dodaj element z kluczem 'MyDomainName.com' typu NSDictionary
  4. Dodaj element z kluczem "NSIncludesSubdomains " Typu Boolean i ustaw wartość jako YES
  5. Dodaj element z kluczem "NSTemporaryExceptionAllowsInsecureHTTPLoads " typu Boolean i ustaw wartość jako YES

Plist struktura powinna wyglądać tak, jak pokazano na poniższym obrazku.

Rozwiązanie 2

Rozwiązanie 2 jest preferowane, ponieważ pozwala tylko na wybraną domenę, podczas gdy rozwiązanie 1 pozwala na wszystkie niebezpieczne połączenia HTTP.

 24
Author: Jayprakash Dubey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-10 12:51:16

Bezpieczeństwo transportu jest dostępne w systemie iOS 9.0 lub nowszym. Możesz mieć to Ostrzeżenie podczas próby wywołania WS wewnątrz aplikacji:

Bezpieczeństwo transportu aplikacji zablokowało ładowanie zasobów cleartext HTTP (http://), ponieważ jest niebezpieczne. Tymczasowe wyjątki można skonfigurować za pomocą informacji aplikacji.plik plist.

Dodanie następujących informacji.plist wyłączy ATS:

<key>NSAppTransportSecurity</key>
<dict>
     <key>NSAllowsArbitraryLoads</key><true/>
</dict>
 20
Author: Malek Belkahla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:09:10

Przykład Rozwoju

Oto zrzut ekranu plist, który utrzymuje ATS nienaruszony (=bezpieczny) , ale pozwala na połączenia z localhost mogą być wykonane przez HTTP zamiast HTTPS . Działa w Xcode 7.1.1.

Tutaj wpisz opis obrazka

 14
Author: Sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:23:41

Zastanawianie się, jakich ustawień użyć, może być wykonywane automatycznie, jak wspomniano w Ten technote :

/usr/bin/nscurl --ats-diagnostics --verbose https://your-domain.com
 12
Author: ecotax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-07 08:29:36

Przejdź do informacji.plist

  1. Kliknij prawym przyciskiem myszy na pustym miejscu i kliknij Dodaj wiersz
  2. Wpisz nazwę klucza jako NSAppTransportSecurity, pod nią
  3. Select Exception Domains, Add a new item to this
  4. Zapisz nazwę domeny, do której należy uzyskać dostęp
  5. Zmień typ domeny z String Na słownik, Dodaj nową pozycję
  6. NSTemporaryExceptionAllowsInsecurehttploads, który będzie logiczny z wartością true. Spójrz na zdjęcie, aby podążać za nim poprawnie
 10
Author: Shailendra Suriyal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-09 06:28:32

Według Apple, ogólne wyłączenie ATS doprowadzi do odrzucenia aplikacji, chyba że masz ku temu dobry powód. Nawet wtedy powinieneś dodać wyjątki dla domen, do których możesz bezpiecznie uzyskać dostęp.

Apple ma doskonałe narzędzie, które mówi dokładnie, jakich ustawień użyć: w Terminalu wprowadź

/usr/bin/nscurl --ats-diagnostics --verbose https://www.example.com/whatever

I nscurl sprawdzi, czy to żądanie nie powiedzie się, a następnie spróbuje różnych ustawień i powie Ci dokładnie, który z nich przechodzi i co zrobić. Na przykład dla niektórych adresów URL stron trzecich że odwiedzam, to polecenie mi mówi, że ten słownik przechodzi:

{
    NSExceptionDomains = {
        "www.example.com" = {
            NSExceptionRequiresForwardSecrecy = false;
        };
    };
}

Aby odróżnić witryny własne od stron trzecich, które są poza Twoją kontrolą, użyj na przykład klucza nsthirdpartyexceptionrequires Forwardsecrecy.

 9
Author: gnasher729,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 04:03:34

Użycie:

PList Screenshot to understanding better

Dodaj nowy element, NSAppTransportSecurity, w pliku plist z typem Słownik, Następnie dodaj element podrzędny NSAllowsArbitraryLoadsw słowniku typu Booleani ustaw wartość bool YES. To mi pasuje.

 8
Author: Tejinder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:10:18

W dniu 2015-09-25 (po aktualizacji Xcode w dniu 2015-09-18):

Użyłam metody nie leniwej, ale nie zadziałała. To są moje próby.

Pierwszy,

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.xxx.yyy.zzz</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

I po drugie,

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.xxx.yyy.zzz</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>
W końcu użyłem metody leniwej:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
To może być trochę niepewne, ale nie mogłem znaleźć innych rozwiązań.
 8
Author: Heedoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:30:54

Uwaga: domena WYJĄTKÓW w pliście powinna być pisana małymi literami.

Przykład: nazwałeś swój komputer "MyAwesomeMacbook" w Ustawieniach - >udostępnianie; Twój serwer (do celów testowych) działa na MyAwesomeMacbook.local:3000, a Twoja aplikacja musi wysłać zapytanie do http://MyAwesomeMacbook.local: 3000 / files ..., Twój plist musisz podać " myawesomemacbook.lokalne " jako domena wyjątku.

--

Twoje informacje.plist będzie zawierać...
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>myawesomemacbook.local</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow HTTP requests-->
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>
 8
Author: ObjectiveTC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-12 18:17:38

Aktualizacja dla Xcode 7.1, problem 27.10.15:

Nowa wartość w Info.plist to "ustawienia bezpieczeństwa transportu aplikacji". Stąd słownik powinien zawierać:

  • Zezwalaj na dowolne Ładowanie = tak
  • domeny WYJĄTKÓW (Wstaw tutaj swoją domenę http)
 6
Author: MkaysWork,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:25:48

Może warto wspomnieć, jak się tam dostać...

Info.plist jest jednym z plików poniżej głównego.storyboard lub viewController.swift.

Gdy klikniesz na niego za pierwszym razem, zwykle jest w formacie tabeli, więc kliknij prawym przyciskiem myszy plik i "otwórz jako" kod źródłowy, a następnie dodaj poniższy kod pod koniec, tj.:

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

Kopiuj Wklej kod tuż powyżej

 "</dict>
</plist>"

Który jest na końcu.

 6
Author: Naishta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:27:11

Dla tych, którzy przybyli tutaj próbując znaleźć powód, dla którego ich WKWebView jest zawsze biały i nic nie ładuje (dokładnie tak, jak opisano tutaj Jak uzyskać WKWebView do pracy w swift i dla aplikacji macOS) :

Jeśli wszystkie powyższe informacje nie działają dla Ciebie sprawdź oczywiste: ustawienia piaskownicy

ustawienia piaskownicy]

Jako nowy w swift i cocoa, ale dość doświadczony w programowaniu spędziłem około 20 godzin, aby znaleźć To rozwiązanie. Żadna z dziesiątek hipster-iOS-tutoriale ani Apple keynotes-nic nie wspomina o tym małym checkboxie.

 2
Author: Alekseev Vladimir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-20 14:40:57

Dla Cordova, jeśli chcesz dodać go do ios.json, wykonaj następujące czynności:

"NSAppTransportSecurity": [
   {
      "xml": "<dict><key>NSAllowsArbitraryLoads</key><true /></dict>"
   }
]

I powinno być wewnątrz:

"*-Info.plist": {
   "parents": {
   }
}
 1
Author: zeusstl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 12:41:01

Użycie NSExceptionDomains może nie stosować efektu jednocześnie ze względu na to, że strona docelowa może ładować zasoby (np. pliki js) z zewnętrznych domen nad http. Można to również rozwiązać dodając te zewnętrzne domeny do NSExceptionDomains.

Aby sprawdzić, których zasobów nie można załadować, spróbuj użyć zdalnego debugowania. Oto samouczek: http://geeklearning.io/apache-cordova-and-remote-debugging-on-ios/

 1
Author: Nurlan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-14 06:12:50

Jak wielu zauważyło, jest to problem z funkcją, która pochodzi z iOS 9.0. Dodali coś o nazwie bezpieczeństwo transportu aplikacji i ja też byłem zirytowany, gdy zepsuł moje aplikacje.

Możesz go opatrzyć kluczem NSAllowsArbitraryLoads na YES pod słownikiem nsapptransportsecurity w Twoim .plist, ale ostatecznie będziesz musiał ponownie napisać kod, który tworzy Twoje adresy URL, aby utworzyć prefiks HTTPS://.

Apple ponownie napisał klasę NSUrlConnection w iOS 9.0. Możesz przeczytać o tym w NSURLConnection.

W Przeciwnym Razie być może będziesz musiał wycofać się z iOS 9.0, dopóki nie będziesz miał czasu na wdrożenie właściwego rozwiązania.

 -4
Author: Mark DeWald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:28:50