2015-09-18 46 views
2

更新到新發布的Xcode 7版本後,我遇到了這個問題。明文HTTP被阻止

由於App Transport Security不安全,App Transport Security阻止了明文HTTP(http://)資源加載。臨時例外可以通過您的應用程序的Info.plist文件進行配置。 gete由於App Transport安全策略要求使用安全連接,因此無法加載資源。

我做了一些搜索,我發現解決方案,說這些行添加到我的項目中Info.plist文件,但問題並沒有解決

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>CFBundleDevelopmentRegion</key> 
    <string>en</string> 
    <key>CFBundleExecutable</key> 
    <string>$(EXECUTABLE_NAME)</string> 
    <key>CFBundleIdentifier</key> 
    <string>com.thenewsapp.$(PRODUCT_NAME:rfc1034identifier)</string> 
    <key>CFBundleInfoDictionaryVersion</key> 
    <string>6.0</string> 
    <key>CFBundleName</key> 
    <string>$(PRODUCT_NAME)</string> 
    <key>CFBundlePackageType</key> 
    <string>BNDL</string> 
    <key>CFBundleShortVersionString</key> 
    <string>1.0</string> 
    <key>CFBundleSignature</key> 
    <string>????</string> 
    <key>CFBundleVersion</key> 
    <string>1</string> 
    <key>NSAppTransportSecurity</key> 
<dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>greenarea.com</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSTemporaryExceptionMinimumTLSVersion</key> 
       <string>TLSv1.1</string> 
      </dict> 
     </dict> 
</dict> 
</dict> 
</plist> 

任何幫助

+0

你爲什麼不設置'NSAllowsArbitraryLoads'到TRUE;?這會讓你做所有的HTTP調用。 – execv

+0

我做了同樣的問題仍然 –

+0

好吧,這似乎很奇怪。我只是檢查它和它的工作。請告訴我們您的info.plist?爲了確保,您需要將'NSAppTransportSecurity'作爲字典添加到'NSAllowsArbitraryLoads'中作爲布爾值,並將其設置爲YES。 – execv

回答

1

提到here

應用程序傳輸安全性(ATS)在應用程序與其後端之間的安全 連接中實施最佳做法。 ATS防止意外披露,提供安全的默認行爲,並且易於採用;它在iOS 9和OS X v10.11中默認情況下也爲 。無論您是在創建新應用程序 還是更新現有應用程序,都應儘快採用ATS 。

如果您正在開發新應用程序,則應該專門使用HTTPS。如果 您有一個現有的應用程序,那麼您應該儘可能多地使用HTTPS,您現在應該儘可能地使用HTTPS ,並創建一個儘可能快地將其餘應用程序遷移爲 的計劃。此外,通過更高級的 API進行的通信需要使用TLS 1.2版進行加密,並且具有前向保密性。 如果您嘗試建立不符合此要求的連接,則會引發錯誤 。如果您的應用需要向不安全的 域發出請求,則必須在應用的Info.plist文件中指定此域。

可以清楚地提到你會去https協議從http,直到然後這是解決辦法

而且在你的plist除了NSAllowsArbitraryLoads,從刪除所有剩餘的關鍵NSAppTransportSecurity字典

enter image description here