UIWebViewsまたはWKWebViewsを使用している場合は、NSAllowsArbitrartyLoadsInWebContent
例外を使用してWebビューでhttp接続を許可できます。ただし、これはiOS 10以降を実行するデバイスにのみ役立ちます。アプリがiOS9をサポートしていて、ウェブコンテンツの例外のみを含めると、iOS 9ユーザーはhttpを使用するサイトを読み込むことができなくなります。両方をサポートするために、アップルはあなたのInfo.plistにとNSAllowsArbitrartyLoadsInWebContent
ととの組み合わせを組み合わせています。これにより、iOS 9デバイスでは基本的にApp Transport Security(ATS)が無効になりますが、iOS 10ではNSAllowsArbitrartyLoadsInWebContent
の設定がNSAllowsArbitrartyLoads
の設定よりも優先されます。つまり、WebViewではhttpと非ATS準拠の接続のみが許可されます。
ユーザーがアプリ内の任意のサイトを閲覧することを許可する場合は、SFSafariViewControllerへの切り替えを検討することをおすすめします。基本的にはアプリ内にSafariを埋め込むため、ATSの例外は必要ありませんが、別のプロセスとして使用します。ユーザーがアクセスできるサイトを管理できない場合は、柔軟性があり、最高のエクスペリエンスを提供します。
既に店舗に入っているアプリについて:iOS 9より前の基本SDKでアプリをコンパイルした場合は、ATS保護が焼き付けられていない可能性があります。アプリはiOS 9とiOS 10で正常に動作するはずです。 iOS 9または10デバイスのApp Storeからアプリをインストールし、http://のURLにアクセスできることを確認して確認します。
Appleがhttpsを使用する要件を延期していないことを理解してください.AOSはiOS 9以降を実行するデバイス、iOS9以上の基本SDKでコンパイルされたアプリケーションでアクティブです。彼らが遅れたのは、NSAllowArbitraryLoads
の例外を使用する際に正当な理由を提供する必要があることでした。あなたがアップルにアプリを提出すると、そのチェックが行われます。店舗内の既存のアプリケーションは影響を受けません。上記の例外が必要な場合は、ATSの機能を無効にする必要があります。店内の現在のアプリがNSAllowsArbitraryLoads
の例外を使用している場合、あなたはあなたのアプリのATSを無効にしています。そして、ある時点で、アップルはサーバーとの安全でない通信を行うことによって潜在的にユーザを危険にさらしている理由を説明してほしいと思っています。
info.plistに例外ドメインを追加することができます。そのドメインに追加するだけです。 – trapper