web-dev-qa-db-ja.com

iOS 10:Appleトランスポートセキュリティの「例外ドメイン」が機能しなくなった

IOS 10ベータ8、Xcode8ベータ6を使用しています。

Apple Transport Security(ATS)について「例外ドメイン」の使用はiOS10では機能しないが、「任意のロードを許可する」ことが機能していることがわかりました。他の誰かが確認しますか?

ATS exception

(画像からドメイン名を削除しました。これはエンタープライズアプリケーションであり、ATS例外を無視してアプリストアの影響を受けません)

8
Nostradamus

例外ドメインメソッドは私に働きます。 Xcode 8.21、mac os 10.12.3、react-native0.42.3。

次のようにxcodeまたはテキストエディタモードでplistを変更した後、ターミナルとシミュレータを閉じて再起動する必要があります。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>example1.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
        <key>example2.org</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>
5
ppjerry

これはあなたの問題ではないかもしれませんが、それは私の問題を解決しました。

入力するドメインは、通常ブラウザに表示されるドメインである必要があります。つまり、コードでhttp://www.example.comを使用する場合は、代わりにwww.example.comを使用する必要があります。またはhttp://example.comは代わりにplistのexample.comである必要があります

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <!-- Replace example.com with www.example.com if that is what you registered on your hosting service-->
    <key>example.com</key>
    <!-- instead of http://example.com -->
    <dict>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <key>NSIncludesSubdomains</key>
      <true/>
    </dict>
  </dict>
</dict>
1
Andrew Taylor