Xcode 6(iOS 8)シミュレータでCharles Proxyを使用するにはどうすればよいですか?


84

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

回答:


121

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

以下はCharles3.9.2に適用されます。

CharlesProxyの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の場合:Xcode5以前でCharlesProxyをセットアップする場合は、元のスクリプトを変更する必要はありません。CharlesのWebサイトからダウンロードして、そのまま実行するだけです。

4
シミュレータを再起動した後に動作します。
avdyushin 2014

9
あなたの答えはSSLリクエストの問題を解決するようです。しかし、主な問題は、チャールズがiOSシミュレーター8.0 / Xcode6からのリクエストを処理しないことかもしれません。それを修正する方法を知っていますか?
aelam 2014年

1
スクリプトはここに移動されたと思います:charlesproxy.com/documentation/faqs/…(そしてソースを読むと、あなたが提案した方法で更新されているようです)
Ian Dundas

1
私はこれに従いましたが、ターミナルでエラーが発生しています-UNIQUE制約が失敗しました:tsettings.sha1
ベータ版

1
参考までに、この回答を更新して、スクリプトを必要とせずに、ヘルプメニューから証明書をインストールするCharles3.9.3をダウンロードする手順を追加しました。
codeperson 2014年

35

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

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

「ついに今のところ、Appleからもっと連絡が来るまで、開発中はATSを無効にしてください。」-上記の他の回答から欠落していることに気づきます。
マークギボー2016年

ありがとう!彼らはこれをチャールズのウェブサイトに載せるべきです!
ルドルフJ

Charlesは、3.11.4リリースの時点でApp Transport Security(ATS)をサポートしています。
マリアンチェルニー

1
自動プロキシ設定のチェック外すには+1 。会社のネットワーク環境に.pacファイルがあり、シミュレータのトラフィックがチャールズに表示されない場合があります。
iplus26 2017

「Charlesのプロキシ|プロキシ設定で「MacOSプロキシを有効にする」と「HTTPプロキシを使用する」がチェックされていることを確認し てください。これは役に立ちます。ありがとう!
S.Matsepura18年

17

チャールズのドキュメントによると

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

ここを読む

したがって、シミュレータを終了し、charlesを開いてから、アプリを再度実行します。その後、ネットワーク通話を追跡できます。

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


1
「自動構成」プロキシURLが設定されている場合、CharlesProxyは機能しないことがわかりました。自動構成URLは手動プロキシ設定を上書きするようです。自動構成URLを削除し、手動設定(私の場合は資格情報を使用)を指定すると、Charlesは設定を再構成でき、iOSシミュレーター(7.1)を再起動しなくても機能しました。
ショーンエイトケン2014

12

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

画面が表示されます。

証明書のインストールプロンプト画面


この方法を試しましたが、ローカルサーバーの実行時に安全なサイトを読み込めませんでした。誰かがこの問題に対処する方法に光を当てることができますか?
ガネーシュパンデア

1
Safariを使用してブラウジングして、証明書に問題がないかどうかを確認してください。これを行うには、Webサイトのロック記号をクリックします。 Safari証明書ダイアログウィンドウ。自己署名証明書を使用していて、クライアント証明書をマシンにインストールする必要があると思われます。これは、Safariを介して、[信頼]-> [常に許可]を選択することで実現できます。
user1307434 2014年

SSLハンドシェイクエラーを取り除くためにこれを行う必要がありました。
ラーチは2014年


2

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

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


この答えは@jonsibleyのものよりも優れています。CharlesWebサイトの構成スクリプトはなくなりました。
Hai Feng Kao

ここに移動したばかりだと思います:charlesproxy.com/documentation/faqs/…–
Ian Dundas

2

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

Charles v3.9.3以降、[ヘルプ]メニューに[iOSシミュレーターにCharles CA SSL証明書をインストールする]という項目があります。これにより、iOSシミュレーターにCharlesのSSLCA証明書が自動的にインストールされます。

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

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


2

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

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

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

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


他に何もないとしても、証明書は自己署名されており、AppleのATS要件に適合しないことは確かです。最初のステップは、認可された認証局によってチャールズの証明書に署名することですが、ロジスティクスは別として、それはお金がかかるでしょう。ドメインも公開されている必要があります。などなど実現可能だとしても簡単ではありません。
hampden123 2015年

@ Hampden123私の知る限り、AppleのApp Transport Securityメカニズムは、信頼できる証明書としてiOSデバイスに正しくインストールされている限り、自己署名証明書を許可します。したがって、charlesproxyが別の理由でATSを無効にする必要があると私は信じています。現在、これを確認するためにAppleATSのドキュメントにアクセスできないようです。
JosephH 2015年

あなた(または誰か)がATSを無効にせずにiOS 9デバイスに自己署名証明書を提供することに成功した場合は、その方法を教えてください。TIA!
hampden123 2015年

1

チャールズが開始した後にシミュレータを(再)起動するだけで、修正されました。


1

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

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

必要な最後のステップ(もちろん、スクリプトまたはSafariを介して証明書をインストールした後):Simluatorの設定->一般->バージョン情報->証明書の信頼設定-> CharlesProxyカスタムルート...->有効化💥に移動します。


1

iOSシミュレーターの手順。

  • Charlesをインストールする-ダウンロード
  • チャールズメニュー->プロキシ-> Macプロキシを有効にする
  • Charlesメニュー->ツール->プロキシ->プロキシ設定-> MacOS->すべてのチェックボックスをオンにします
  • iOSシミュレーターにCharlesCertificateをインストールする
  • Charlesメニュー->ヘルプ-> SSLプロキシ-> iOSシミュレーターにCharlesCeritificateをインストールする
  • iOSシミュレータでCharles証明書を有効にする
  • iOSシミュレーターの設定->一般->バージョン情報->証明書の信頼設定->スイッチをオンにする
  • トラフィックが表示されない場合は、シミュレータの前にCharlesを実行します

iPhone / iPadの手順。

  • デスクトップCharlesアプリを開く(Mac / Windows)
  • チャールズメニューに移動->ヘルプ-> SSLプロキシ->モバイルデバイスまたはリモートブラウザにチャールズセリティフィケートをインストール->選択->ポップアップが以下の手順で表示されます `

    192.168.0.100:8888でCharlesをHTTPプロキシとして使用するようにデバイスを構成してから 、ブラウザーでchls.pro/sslにアクセスして、証明書をダウンロードしてインストールします。

  • iPhoneの設定に移動-> Wifi->選択したwifiをクリック-> Httpプロキシ->プロキシの構成->手動を選択->サーバーを192.168.0.100、ポートを8888として指定->保存

  • iPhoneブラウザに移動-> chls.pro/sslをロード->ポップアップの下に表示されます `

    Webサイトが構成プロファイルをダウンロードしようとしています。これを許可しますか?無視ボタンと許可ボタン

  • [許可]ボタンをクリックします->プロファイルをダウンロードします

  • iPhoneの設定->一般->プロファイル->ダウンロードしたプロファイル-> CharlesProxyプロファイルの選択->インストールに移動します
  • [iPhoneの設定]-> [一般]-> [バージョン情報]-> [証明書の信頼設定]-> [有効にする] -CharlesProxyCA証明書に移動します
  • これで、デスクトップのCharlesアプリでiPhoneアプリの通話を追跡できます

1
iOSシミュレーターの設定->一般->バージョン情報->証明書の信頼設定->必要なものをオンにしてくださいありがとうございます!
atalayasa

0

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

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

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

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


0

サファリ(シミュレーター)に行き、URLにアクセスした後、それは私のために働きます:

chls.pro/ssl 

iOSシミュレーターにcharlesルート証明書をインストールする前に(Charles:help / SSLproxying)

よろしく

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.