2017-10-12 40 views
6

Znajomi Mam prosty odtwarzacz audio (MPMoviePlayerController), który może odtwarzać strumień audio. IOS 11 mam bardzo interessing kłopoty, tysiąc czas mam błąd i mój strumień został zatrzymany:NSURLConnection zakończył się błędem - kod -1002

NSURLConnection finished with error - code -1002 

I wklej ten kod (ten kod widziałem na stackowerflow), ale to nie pomaga mi:

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>cast.mysite.com</key> 
      <dict> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
      </dict> 
     </dict> 
    </dict> 

Może znasz najlepsze rozwiązanie?

+0

Upewnij się, że strumieniujesz dźwięk z bezpiecznego serwera (serwer z ważnym certyfikatem). –

+0

to zobowiązanie? Mam 8 strumieni http i na iOS 10 działa idealnie, ale na iOS 11 - po 5 minutach zatrzymania odtwarzacza – Genevios

+0

Odpowiedziałem na twoje obawy w sekcji "Odpowiedź", ponieważ w obszarze komentarzy trudno jest rozwiązać twój problem. –

Odpowiedz

13

Błąd ten nie powinienbyć związane z użyciem protokołu HTTP zamiast HTTPS. Kod błędu aplikacji Transport Security zwraca kod błędu -1022.

Kod błędu -1002 wskazuje nieprawidłowy URL. Być może plik listy odtwarzania na żywo strumieniowej transmisji HTTP zawiera strukturalnie nieprawidłowy adres URL (np. Brakujący schemat, schemat inny niż http/https itp.)?

Dalsze debugowania, ustawić zmienną środowiskową

CFNETWORK_DIAGNOSTICS=1 

w projekcie Xcode i ponownie uruchomić aplikację. Kiedy już wiesz, jaki adres URL zawodzi, problem najprawdopodobniej stanie się bardziej oczywisty.

Jeśli nie, zgłoś błąd.

+0

To nie działa, po tej linii i tak mam log TIC. – Genevios

+0

Co mówi dziennik? – dgatwood

+0

Stan odczytu tic [58: 0x0]: 1:57 wiem bardzo dobrze, że to nie błąd, ale bardzo denerwujący za każdym razem, przed rozpoczęciem wyświetlania tej linii – Genevios

0

Najpierw należy użyć bezpiecznego serwera (serwer z ważnym certyfikatem). Nie jestem pewien, czy to konieczne, czy nie, ponieważ nigdy nie próbowałem trafić serwera z nieprawidłowym certyfikatem. Można spróbować tego kodu (nie wiem, to będzie pracować dla Ciebie, czy nie) umieścić ten kod w Appdelegate.m

@implementation NSURLRequest(DataController) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host 
{ 
    return YES; 
} 
@end 
+0

Spróbuję tego po 2-3 dniach i odpowiem, jeśli dobrze, przyjmuję twoją odpowiedź, ale tak, dziękuję! – Genevios

+3

To bardzo, bardzo zły pomysł. Spowoduje to wyłączenie zabezpieczeń wszystkich żądań adresów URL dla całej aplikacji, a Twoja aplikacja zostanie odrzucona ze sklepu App Store iOS, jeśli ją wypróbujesz. – dgatwood