[英]iOS App Transport Security issue
TL; DR:
我有一個iOS應用程序連接到不符合新ATS功能的最低要求一個web服務。 我已經修改了Info.plist
以允許例外,因此我的應用程序仍可以連接到Web服務。 ( iOS 9上的NSURLSession / NSURLConnection HTTP加載失敗 )在開發中可以正常工作,但是, 我剛剛推送到商店的更新仍然無法訪問Web服務。 我不知道斷開發生在哪里或如何解決。
===
首先,這都是在模擬器中發生的,當我直接在xcode中部署到ipad時,行為相同:
我正在嘗試通過iOS應用中的https連接到Web服務。 現在,每次嘗試連接到Web服務時都會出現此錯誤:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
據我了解,這是由於新的ATS功能不允許連接而發生的。 我已通過將修復程序( iOS 9上的NSURLSession / NSURLConnection HTTP加載失敗 )應用於我的Info.plist
文件來確認這一點:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.com</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
一旦輸入,它就可以毫無問題地連接到Web服務。
顯然,雖然我的服務器符合TLS 1.2要求和密碼要求,但它不符合簽名要求( https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html #// apple_ref / doc / uid / TP40009251-SW35 )
但是,我已經對我的應用程序進行了更新並推送到應用程序商店,但是我的應用程序的商店版本無法連接到Web服務。 從xcode部署到本地計算機上時,相同的代碼可以很好地構建並在設備上運行,但是商店中的版本似乎忽略了.plist
修復程序。 我怎樣才能解決這個問題? 這對我完全沒有意義。
嘗試使用此版本的info.plist
配置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.example.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
編輯:嘗試也將NSExceptionRequiresForwardSecrecy
指定為NO
。
嘗試將以下代碼添加到您的info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads<key><true/>
</dict>
有關更多信息,請參見鏈接: 蘋果論壇
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.