私の開発プロセスでは、VPNの背後にあり、DNSエントリがないWebサーバーにアクセスする必要があります。私が4.xでやっていたことは、iPhoneの/ etc/hostsを編集し、それをhostsファイルに追加することでした。
現在、私は5.0ベータ版を使用しています。この目的のためだけに今のところ脱獄したくありません。
/ etc/hostsに行を追加する方法はありますか?ジェイルブレイクせずに、開発目的でのみ(最終的な配布アプリケーションはこのハックを必要としません)?他の手段を使用できますか(たとえば、アプリケーションの起動時に不明な手段で偽のDNSエントリを宣言します)?
ワイヤレスネットワークにローカルDNSサーバーをセットアップするか、動的DNSサービスを使用するか、DNSを制御するドメインにAレコードを追加することにより、実際のDNSエントリをセットアップします。
[〜#〜] edit [〜#〜]:小規模なライセンスを購入する場合は、 Charles Proxy 、Webデバッグプロキシツール。また、ローカルの/ etc/hostsからドメインを解決し、多くのボーナス機能を提供します(つまり、リクエスト/レスポンスを検査し、ネットワーク速度をスロットルします)。私はWWDCビデオからこのツールに出くわしただけで、製品とはまったく関係ありません。 Chris ChingのiPhoneとCharles Proxyのチュートリアル を読んで始めることをお勧めします。
Ramon's answer に追加するには、ローカルコンピューターをDNSサーバーとしてセットアップし、iPhoneがDNSサーバーとしてコンピューターをポイントするようにします。これはAndroidデバイスでも機能します
brew install dnsmasq
dnsmasq
は、不明なドメインに遭遇したときに元のDNSサーバーにフォールバックする軽量のDNSサーバーですaddress=/.your.domain.com/10.0.0.5
をファイル/usr/local/etc/dnsmasq.confに追加します10.0.0.5
は、ルーターによってローカルコンピューターに割り当てられたIPアドレスです。これはNetwork Utility
から見つけることができます(派手になりたい場合は、ルーターのローカルコンピューターに静的IPを割り当てることができます)Sudo dnsmasq
dnsmasq
に含める理由は、他の既知のDNSサーバーを通じて未知のエントリを満たします。ルータエントリがなければ、あなたはあなたに接続されているどんなデバイスでもdnsmasq
はインターネットに接続する方法を知りません。dnsmasq
は/ etc/hostsを参照するため、your.domain.com
を127.0.0.1
に指定した場合、iPhoneはyour.domain.com
を127.0.0.1
に解決します。つまり、何にも接続しません。この動作を変更するには、dnsmasq構成の#no-hosts
行のコメントを外します。また、dnsmasq(macports/brewから入手可能)をセットアップすることもできます。これは、あらゆる種類の代替レコードを設定できるDNSフォワーダーとして機能します。
次に、iPhone/ipadでDNSmasqを実行しているボックスを指すようにDNSを設定すると、dnsmasqボックスの/ etc/hostsにあるホストが最初に返されます。見つからない場合、dnsmasqはクエリを上流のDNSに送信します。
また、SRVレコードをdnsmasq.confに追加することもできます。
srv-Host=_sip._udp.devel.foo.com,devel.foo.com,5070
そして、他の多くの美しさ。
実際には、Tweakboxのサードパーティ製アプリFilzaJailedを使用して、脱獄せずにhostsファイルを変更できます。/etc/hostsに移動してクリックし、テキストエディターを使用して開きます。