52

開発ボックスで実行されているローカル サーバーを使用して iOS アプリを開発しています。デバイスでテストするときは、HTTPS ではなく HTTP 経由の IP アドレスを介して直接接続します (そのため、開発中に自己署名証明書を処理する必要はありません。デバイスはとにかく好きではありません)。

これで十分だと思いました:

ここに画像の説明を入力

ただし、追加せずに動作させることはできません。別名NSAllowsArbitraryLoads = YESこれ:

ここに画像の説明を入力

ここで、開発中ではなく、製品ビルドを展開するときにこれを削除することを忘れないでください... arg. IPアドレスで動作する必要がありますか?NSExceptionDomainsそうでない場合は、有効にせずに他にできることはありNSAllowsArbitraryLoadsますか?

4

4 に答える 4

52

ハードコーディングされた IP アドレスは、iOS9 では機能しません。私も同じ問題に直面しました。利用可能なソリューションのすべての順列と組み合わせを試しました。最後に、適切なドメイン名を使用する必要がありました。

iOS9 では、ハードコーディングされた IP アドレスを使用することはできません。

于 2015-07-16T12:56:09.593 に答える
26

有効にせずに他にできることはありNSAllowsArbitraryLoadsますか?

1 つの回避策は、この Apple Developer Forums スレッドでQJeffRによって説明されているように、xip.ioを使用することです(これは David L によって彼のコメントで共有されました)。

(たとえば) 10.0.1.8.xip.ioへの DNS 呼び出しは10.0.1.8に解決され、キーの IP アドレスの代わりにドメインを使用できるようになりNSExceptionDomainsます。

于 2015-11-19T18:18:23.593 に答える
5

@PanxShaz が言ったように、ハードコードされた IP アドレスを入力することはできませんが、簡単な回避策を使用できます。

  1. /etc/hostsを使用してファイルを開き、sudoIP アドレスの新しいローカル ドメイン名を追加します。例:

    192.168.99.100 docker-host.localhost

  2. 次に、DNS をフラッシュします。

    dscacheutil -flushcache

  3. 最後に、この新しいローカル ドメインをアプリ トランスポート セキュリティ例外で使用します。

于 2016-03-14T15:48:03.793 に答える