2015-10-05 7 views
9

私はhttpドメインからいくつかの情報をダウンロードする働くアプリケーションを持っていました。しかし、Swift 2.0とXcode 7のアップデート後、私のアプリはサーバーに接続してjsonデータをダウンロードすることができないので、「App Transport Securityはセキュアでないため、クリアテキストHTTP(http://)リソースの負荷をブロックしました。一時的な例外は、アプリのInfo.plistファイルで設定できます。エラー。私は私のInfo.plistファイルにこの行を入れて試してみましたNSAllows ArbitraryLoads not working

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

しかし、私は同じエラーを取得し、それが働いていません。私は常にダウンロード方法から無関係なデータを取得します。いずれも同じエラーがありますか?ありがとう!

EDIT:ここでは私のInfo.plistファイルからの画像です:次のようなドメインを追加する

Info.plist file

+0

奇妙に見えますが、プロジェクトをきれいにして、フォルダと派生データを作成してみましたか? –

答えて

13

私はとても愚かだと感じます。間違ったInfo.plistでATSを無効にするためのキーを追加しました。それをSupporting Files/Info.plistファイルに追加するのではなく、MyAppTests/Supporting Files/Info.plistファイルに追加しました。 Xcodeのバグではなく、私の脳のバグです。あなたの答えはありがとう!

+6

同じ問題のために私もとても馬鹿だと感じます。本当にありがとう! –

+2

同じことが私にも起こりました! – tim

+0

私はとても愚かで安心しています。ありがとうございました。 – Chucky

0

てみましたか?それをNSAppTransportSecurity辞書に追加する必要があります。

<key>NSExceptionDomains</key> 
     <dict> 
      <key>abcde.com</key> 
      <dict> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <true/> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
      </dict> 
     </dict> 
+0

あなたのコードを試しましたが、私はまだ同じエラーが発生します... –

+0

ドメインキーを更新しましたか?@PabloQuemé – ridvankucuk

+0

はい、ここに私のinfo.plistの画像があります: –

6

あなたは、端末に

nscurl --ats-diagnostics <your-URL> 

を使用して試すことができます。これにより、アプリがあなたのURLに接続できるようにする設定を見つけることができます。これはOSX El Capitanでのみ動作します。アップルtechnoteをチェックしてください。

あなたのinfo.plistファイルでNSArbitraryLoadsを試したことがあるなら、この診断ツールはおそらくあなたを助けません。私はあなたがバグを見つけたかもしれないと思う。

3

私は同じ問題を抱えていましたが、私はNSExceptionMinimumTLSVersionを追加しようとしました。

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionMinimumTLSVersion</key> 
    <string>TLSv1.0</string> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

なぜこれが役立つのかわかりませんが...そうです!私はそれが誰かにも役立つことを願っています

1

NSAllowsArbitraryLoadsがtrueに設定されていましたが、HTPはうまく動作しませんでした。私はinfo.plistファイルにNSExceptionDomainsセクションがあることに気がつきました。働いた。

NSExceptionDomainsがNSAllowsArbitraryLoadsをキャンセルしていると思われますが、これが役立つといいでしょう。

0

私は同様の問題がありましたが、しばらくしてinfo.plistファイルが壊れていたことがわかりました。私は、xcodeのplistエディターだけでなく、xmlを直接確認するようアドバイスすることもできます。

0

http://リソースをWeb(UIWebView/WKWebView/SafariViewController)でロードする必要がある場合は、次のようにすれば十分です。

私はそれが「下trueに設定して動作するように、「任意の負荷を許可」を得るためには、「Webコンテンツで許可する任意のロード」または「例外ドメイン」のような他のすべてのキーを削除するために必要な私の場合は
<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoadsInWebContent</key> 
    <true/> 
</dict> 
2

Info.plistの「App Transport Security Settings」を参照してください。

XCode 8.2.1、iOS 10.2を使用してテストされました。

0

iOS 10.3のXCodeバージョン8.3.2(8E2002)で同じ問題が発生しました。 「Webコンテンツの任意の負荷を許可する」や「例外ドメインを許可する」などのすべてのキーを削除した後、「任意の負荷を許可する」キーが期待通りに機能します。ありがとう@dariukas。