基本的に、URLに対して偽のDNSエントリを作成し、そのURLを特定のIPに解決するように強制したいと思います。アプリが拒否されないようにiOSでこれを行う方法はありますか?私はこれを行う方法を見つけることができないようです(まだ正方形の1つです)。誰かが私を正しい方向に向けることができますか(クラス参照、サードパーティのフレームワークなど)?そうでない場合、それを不可能にするルール/ポリシー/私が見落としている他の何かがありますか?
2 に答える
DNSはOSによって設定され、iOS Sandboxのためにエントリを変更できないため、iOSアプリレベルでこれを公式に行うことはできません。これは、AppleAppStoreに送信するアプリを作成している場合は不可能であることを意味します。独自のアプリ内で何かを構築することができます。ブラウザがある場合は、URLをインターセプトしてリダイレクトしますが、もちろん、これはアプリ内でローカルになり、ユーザーがMobileSafariやChromeなどを使用する場合にはローカルになりません。
ジェイルブレイクされたデバイス用のアプリを作成している場合は、/etc/hosts
ファイルを変更してそこにエントリを追加できます
簡単な解決策
の1つ:たとえば、GEThttp://httpbin.org/get
し
たいが、domianは使用したくないが、IPアドレスを使用54.175.219.8
する
と、リクエストを作成し、として設定http://54.175.219.8/get
してpath
、新しいhttpヘッダーを追加できます:{"host": " httpbin.org"}。
一般的な解決策:https
:
//github.com/mattt/NSEtcHostsのような独自のNSURLProtocolを実装します