web-dev-qa-db-ja.com

Xcode 6(iOS 8)シミュレーターでCharles Proxyを使用する方法は?

IOSシミュレータのディレクトリが変更されたようです。以前は~/Library/Application\ Support/iPhone\ Simulator/にありましたが、現在は~/Library/Developer/CoreSimulator/Devices/にあります。

79
jonsibley

更新: Charles 3.9.3 + には、iOSシミュレーターを構成するための組み込み関数があります(つまり、Charles SSL証明書をインストールします)。これは、Charlesアプリケーションの[ヘルプ]メニューにあります。 (Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators

Charles 3.9.2には以下が適用されます:

構成シェルスクリプトCharles Proxy Webサイト からダウンロードします。次に、スクリプトを次のものに置き換えて、Macで実行します。

#/bin/bash
install() {
if [ -f "$SQLITEDBPATH" ]; then
cp -n "$SQLITEDBPATH" "$SQLITEDBPATH.charlesbackup"
sqlite3 "$SQLITEDBPATH" <<EOF
INSERT INTO "tsettings" VALUES(X'189B6E28D1635F3A8325E1E002180DBA2C02C241',X'3123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A',X'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0A3C21444F435459504520706C697374205055424C494320222D2F2F4170706C652F2F44544420504C49535420312E302F2F454E222022687474703A2F2F7777772E6170706C652E636F6D2F445444732F50726F70657274794C6973742D312E302E647464223E0A3C706C6973742076657273696F6E3D22312E30223E0A3C61727261792F3E0A3C2F706C6973743E0A',X'3082045E30820346A003020102020101300D06092A864886F70D01010505003081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A3020180F31383939313233313132303030305A170D3338303932343033313930355A3081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A30820122300D06092A864886F70D01010105000382010F003082010A02820101008349587455EFB272E397A31D3B52D9B13115C93F320766D2D451117F45C40285506027079ED439CABB94D44F1AE136EB1E79BF77ABE43345AD1D436809CF9E035C439272F3CA917DCADD7FBD0E3929F1A345F0B89096130BBD116F8D3AB5655789B7B0831325BD22903F198DA6BDDA30C08DFD17CE9AB51C48555264307BCF789A2B6C48DF4ECAF3EA2C092EE737AD8F397900AC03303BFE2AE43549030A7866CB6FE9B04B9F6EC498B4E7369E99B45491BF093858A77C72F8ADC818E018D413265E39446BE514F78EB57A23AA88F630776F861A9163E04AD38EE8A5C9219D0FC23F6B9A6324455DEA6F4A6A251ECA1FA3D6288CB89FD12A2062A3A015A56F250203010001A381BC3081B9300F0603551D130101FF040530030101FF307706096086480186F842010D046A136853534C2050726F7879696E6720697320656E61626C656420696E20436861726C65732050726F78792E20506C6561736520766973697420687474703A2F2F636861726C657370726F78792E636F6D2F73736C20666F72206D6F726520696E666F726D6174696F6E2E300E0603551D0F0101FF040403020204301D0603551D0E04160414BB27F4CB2EB6DBB058101BBD803F38D208D76129300D06092A864886F70D010105050003820101000041F935F30B209E56360F7E3D9C30314A213323C47EDCEA1467600A50FFE4E8E39DFCA8C8D34463C34745FF04C870F1DF28BB772DB0CF1BCA677B70842C742BC6D5FB00559AD643C6BF2C95BD0B855A961D7D6A3EADA9C642E9A789474C4AD838C6F732D8D859548D30829DF7A32D098FE3F00147DAF08C0B37DD597184C1E27A61EA42050C73994E809013CB21E37BF84BF923BCEFEA6164FD28AB9058CCC48F1F486FC1C47EBD8A9C933F542401B11F36A003E47B141A41C7B326D18D023E11EDB445699AA44800254EA33F174FD5EB1CCCE6A09365751FF905988C06315B5575067BF65EC24CAD1A6A601846D1D2F51F1F420A2762990B044000619D1C84');
EOF
fi
}

for SQLITEDBPATH in ~/Library/Developer/CoreSimulator/Devices/*/data/Library/Keychains/TrustStore.sqlite3; do
    echo $SQLITEDBPATH
    install
done

echo "The Charles SSL CA Certificate has been installed for the iPhone Simulator"

注意するべき事柄:

  • シミュレータを起動する前にCharlesを開く必要があります。 Charlesを閉じると、シミュレータを再起動するまでネットワーク要求は失敗します
  • シミュレータで「コンテンツと設定をリセット...」するたびにこれを行う必要があります。
  • Xcode 5の場合:Xcode 5以前でCharles Proxyをセットアップする場合、元のスクリプトを変更する必要はありません。 CharlesのWebサイトからダウンロードして、そのまま実行するだけです。
120
jonsibley

CharlesをXcode 7/iOS9シミュレーターでテストしました。あなたが問題を抱えている場合に追加したいいくつかのポインタ:

  • Mac OSプロキシを有効にする」および「HTTPプロキシを使用する」がCharles 'Proxy |プロキシ設定; Charlesを起動するたびにこのステップを実行したくない場合は、オプションで「起動時にMac OS Xプロキシを有効にする」をチェックします。
  • Automatic Proxy Configuration(および/またはAuto Proxy Discovery)がSystem Preferences |ネットワーク、チャールズのWebプロキシ(HTTP)とセキュアWebプロキシ(HTTPS)が有効にならないように、チェックを外す必要があります。
  • 会社がCharlesから独立したプロキシサーバーを必要とする場合、Charlesによって設定が上書きされてインターネットにアクセスできないように、Charles内の設定を手動で複製する必要があります。 Charlesを起動する前に、プロキシURLとポート番号を書き留めてください。 Charles 'ProxyでこれらのWeb ProxyおよびSecure Web Proxy設定を書き起こします。外部プロキシ設定。
  • SSLプロキシを有効化」し、Charles 'Proxyを介してリストにエンドポイントを追加します。 SSLプロキシ設定。
  • iOSシミュレーターにチャールズルート証明書をインストール」チャールズヘルプ| SSLプロキシメニュー。
  • ええ、シミュレータを開始する前に、Charlesが最初にセットアップされ、開始されていることを確認してください。
  • 最後に、開発中はATSを無効にしてください。Appleからの連絡があります。
34
Hampden123

チャールズ文書によると

IOSシミュレータは、システムプロキシ設定を使用する必要があります。表示されない場合は、iOSシミュレーターを終了して再起動してください。 Xcode 6では、iOSシミュレータを実行する前に、Charlesが実行され、Mac OS Xシステムプロキシとして設定されていることが重要であると思われます。

ここを読む

シミュレーターを終了し、charlesを開いてから、アプリを再度実行してください。その後、ネットワークコールを追跡できます。

注:Charlesを終了すると、ネットワークコールは失敗します。そのため、シミュレータを終了して再度実行するか、Charlesを再度開く必要があります。

18
iHulk

別の方法は、証明書を参照することです http://charlesproxy.com/charles.crt デバイスで

画面が表示されます:

install certificate Prompt screen

12
user1307434

IOS 9用の更新:Charlesを使用するには、App Transport Securityを無効にする必要があります!

http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

4
Paul Bruneau

「iOSシミュレーターにチャールズルート証明書をインストール」は、Xcode 7/iOS 9シミュレーターを備えたCharlesProxy(3.11)の現在のバージョンでは機能しません。

代わりに、「モバイルデバイスまたはリモートブラウザにCharlesルート証明書をインストール...」オプションを使用します。これにより、証明書のURLが提供されます。

このURLをシミュレーターのSafariで開くと、証明書をインストールするオプションが表示されます。

その後、アプリトランスポートセキュリティを無効にする必要があります。証明書をインストールしているときにこれが必要な理由がわかりません。 CharlesProxyは十分に大きなキー/署名を使用していないと思います。

2
JosephH

そのページに構成シェルスクリプトが表示されませんでした。私は次のことを行い、それは私のために働いた:

http://raptureinvenice.com/getting-the-charles-debugging-proxy-to-work-with-ios-and-genymotion/

2
Andrew McKinley

これをチェックしてください:

Charles v3.9.3の時点で、ヘルプメニューに「iOSシミュレータにCharles CA SSL証明書をインストール」という項目があり、iOSシミュレータにCharlesのSSL CA証明書が自動的にインストールされます。

あるいは、NSURLConnectionがSSL証明書を受け入れるようにコードを変更できます。 Stack Overflowの質問と回答をご覧ください。 NSURLConnectionを使用して、信頼できない証明書のSSLで接続する方法

このリンクで確認できます:http://www.charlesproxy.com/documentation/faqs/ssl-connections-from- within-iphone-applications /

2
atulkhatri

Charlesの開始後にシミュレータを(再)起動するだけで修正されました。

1
lavoy

Xcode 9ベータ版のシミュレーターで信頼できない接続に苦労している人向け:

インストールスクリプトが機能するかどうかはわかりませんが、物理デバイスと同じ方法で-Safariを介してcharlesの証明書をインストールできます。

必要な最後の手順(もちろん、スクリプトまたはSafariを使用して証明書をインストールした後):Simluatorの設定->一般->約->証明書信頼設定-> Charles Proxy Custom Root ...-> enable ????

0
Kubba

私にとって、これがうまくいったことです。

デバイスで行うのと同じことをしました。

  1. サファリを開き、chls.pro/sslを参照します
  2. 証明書を受け入れてインストールする
  3. [設定]、[バージョン情報]、[証明書を信頼する]の順に進み、charles証明書を信頼します。

XCUI自動化テストは3をスピンする可能性があるため、3つのシミュレーターインスタンスでこれを行う必要があります。

0
Saran