web-dev-qa-db-ja.com

NSAppTransportSecurityをinfo.plistファイルに追加する方法を教えてください。

https://developer.Apple.com/videos/wwdc/2015/?id=711 @ 5:55

これを私のinfo.plistに追加できないようです。それは価値がありません。私はXCodeバージョン7.0ベータ版(7A121l)を実行していて、iOS9でテストしています。

動画に表示されているURLを具体的に宣言することはできないため、「App Transport SecurityはHTTP(http://)のクリアテキストリソースの負荷を安全ではないためブロックしています。 Info.plistファイル "エラーが発生しました。

しかし、設定できないようです。何か案は?

119
chris P

試してみて--- Xcode-beta 4 7.0で私のために働いた

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

ATSを無効にしたい場合は、もう1つのオプションもあります。

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

しかし、これはまったくお勧めできません。サーバーにはSSL証明書が必要です。プライバシーの漏洩がないようにするためです。

120
Ashish

Info.plistファイルのNSAppTransportSecurity辞書で、NSAllowsArbitraryLoadsキーをYESに追加するだけです。

例えば、

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

enter image description here

88
Hiren Varu

それは私のために働いていませんでした、しかしこれはトリックをしました:

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

明確にするために...あなたはいつもhttpSを使うべきです

しかし、例外を追加してそれを回避することができます。

enter image description here

21
Manuel Pardo

Xcode 8.2、iOS 10

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
9
Oleg Malovichko

アップデート回答(wwdc 2016以降):

IOS apps will require secure HTTPS connections by the end of 2016

ATSは、AppleがiOS 9で導入した機能です。ATSが有効になっていると、非セキュアHTTPではなくHTTPS接続でWebサービスに接続するようにアプリに強制します。

ただし、開発者は依然としてATSをオフにして、上記の回答で説明したように、アプリケーションがHTTP接続を介してデータを送信できるようにすることができます。 2016年末に、Appleは自分のアプリをApp Storeに提出することを望むすべての開発者に対して ATSを必須のにする予定です。 リンク

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>uservoice.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
2
Santhosh Legent
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>net</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>org</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

これにより、.com .net .orgに接続できます。

2
Subirdcom

macシェルのコマンドラインで、次のコマンドを使用します。

plutil -insert NSAppTransportSecurity -xml "<array><string> hidden </string></array>" [location of your xcode project]/Info.plist 

このコマンドは、必要なすべての値をplistファイルに追加します。

1
Avi Levin

XCODE 8、Swift 3:行を追加する必要があります。**

「アプリ転送セキュリティ設定」

** info.plist内の情報プロパティリストにあります。

1

ParaSaraの答えについてもう少し詳しく説明すると、App Transport securityは必須になり、無効にしようとするとアプリが拒否される可能性があります。

ネットワークコードがうまくいかない場合は、開発者としてApp Transportのセキュリティを無効にすることができます。問題を解決する前に他の開発を続けたい場合があります。 5人のチームで言うと、4人が他のことに取り組み続けながら、1人がすべての問題を解決することができます。ネットワークに問題があり、App Transportセキュリティが原因であるかどうかを確認したい場合は、デバッグツールとしてApp Transportセキュリティをオフにすることもできます。あなたが知っているとすぐにあなたはすぐにそれを再び入れるべきです。

Httpsをサポートしていないサードパーティ製のサーバーを使用しない限り、将来使用する必要がある必要がある解決方法は、httpを使用しないことです。あなたのサーバーがhttpsをサポートしていない場合、Appleはそれに問題を抱えるでしょう。サードパーティのサーバーでも、私はAppleがそれを受け入れたとは思わない。

サーバーセキュリティのさまざまなチェックと同じです。ある時点で、Appleは正当な例外だけを受け入れます。

しかし、ほとんどの場合、これを考慮してください。あなたはあなたの顧客のプライバシーを危険にさらしています。それは私の本では大したことではありません。しないでください。コードを修正し、危険なコードを実行する許可を求めないでください。

1
gnasher729

Xcode 9.2、Swift 4、これは私にとってはうまくいきます。

<key>App Transport Security Settings</key>
<dict>
    <key>Allow Arbitrary Loads</key>
    <true/>
</dict>
1
hungmi

NSAppTransportSecurityを使用している開発者にとっての悪いニュースです。

UPDATE:
[Apple will require HTTPS connections for iOS apps by the end of 2016]

https://techcrunch.com/2016/06/14/Apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/

1
Kahng