SORU
9 HAZİRAN 2015, Salı


NSURLSession/NSURLConnection HTTP yük iOS 9 başarısız

İOS9 mevcut uygulamamı çalıştırmak için çalıştı ama AFURLSessionManager kullanırken hatası alıyorum.

__block NSURLSessionDataTask *task = [self.sessionManager dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) {
    if (error) {

    } else {

    }
}];

[task resume];

Aşağıdaki hatayı alıyorum:

Error Domain=NSURLErrorDomain Code=-999 "cancelled.

Ayrıca günlükleri aşağıdaki alıyorum:

 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824
 CFNetwork SSLHandshake failed (-9824)

Güncelleme: Benim çözüm için birden çok güncelleştirme ekledi: NSURLSession/NSURLConnection HTTP load failed on iOS 9

CEVAP
10 HAZİRAN 2015, ÇARŞAMBA


Çözüm buldu

İçinde iOS9, ATS en iyi HTTPS kullanımı da dahil olmak üzere ağ aramaları sırasında uygulamaları zorlar.

From Apple documentation:

ATS yanlışlıkla ifşa önler, güvenli varsayılan davranış sağlar, ve kolay kabul etmektir. ATS en kısa sürede, yeni bir uygulama oluşturmak veya varolan birini güncellemek ister ne olursa olsun kabul etmelisin. Eğer yeni bir uygulama geliştiriyorsanız, HTTPS kullanın. Eğer varolan bir uygulama varsa, HTTPS şu anda mümkün olduğunca çok kullanın ve uygulamanızı geri kalanını en kısa sürede geçirmek için bir plan oluşturmanız gerekir.

Beta 1, şu anda orada bilgi bu tanımlamak için bir yol.plıst. Çözüm manuel olarak eklemek için:

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

enter image description here

Update1:Bu iOS9 ATS desteği kabul etmeye hazır olana kadar geçici bir çözüm.

Update2:Daha fazla bilgi için lütfen aşağıdaki bağlantıyı bakın: http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

Update3:Yalnızca TLS 1.0 olan bir host (yourhost.com bağlanmaya çalışıyorsanız

Uygulamanızın Bilgi için bu ekleyin.plıst

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>YOURHOST.COM</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>1.0</string>
            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • Mega64

    Mega64

    24 ŞUBAT 2006
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008