Android N 以降で Google Mobile Ads SDK(ベータ版)用に Charles プロキシを設定する

Android N 以降では、Charles プロキシで広告の呼び出しを確認するために、次の手順が必要です。

  1. デバイスに Charles SSL 証明書をインストールし、プロキシを設定します。
  2. モバイルアプリの SSL プロキシを有効にします。

デバイスに Charles SSL 証明書をインストールし、プロキシを設定する

Charles をモバイルアプリのプロキシとして使用するには、Charles をダウンロードし、パソコンにインストールします。表示される手順に沿って、Android エミュレータまたはモバイル デバイスに SSL 証明書をインストールします。

エミュレータは Charles を実行しているパソコンと同じ Wi-Fi ネットワークにすでに接続されているため、エミュレータをプロキシと併用する方が手順はシンプルになります。エミュレータをプロキシと併用する場合は、プロキシを localhost(http://127.0.0.1)に設定し、Charles プロキシが実行されているポート(Charles メニュー オプションの [Proxy] > [Proxy Settings] で確認できる)を設定します。

モバイル デバイス本体(スマートフォンまたはタブレット)を使用する場合は、Charles を実行しているパソコンと同じ Wi-Fi ネットワークに、高度なネットワーク設定を使用してモバイル デバイスを接続する必要があります。デバイス本体でプロキシを設定する際には、Charles のメニュー オプション [Help] > [Local IP address] を選択して、パソコンの IP アドレスを取得し、デバイスのプロキシ アドレスに入力します(この方法を使用するには、同じ Wi-Fi ネットワークに接続している必要があります)。ポートは、Charles プロキシが実行されているポートを使用してください。

モバイルアプリの SSL プロキシを有効にする

Charles がモバイルアプリの SSL トラフィックをキャプチャするには、ユーザー提供の SSL 証明書が信頼できるものであることを宣言する必要があります。

まずは、ネットワーク セキュリティ構成の新しい XML リソース ファイルを追加します。

<network-security-config>
   <debug-overrides>
       <trust-anchors>
           <!-- Trust user added CAs while debuggable only -->
           <certificates src="user" />
       </trust-anchors>
   </debug-overrides>
</network-security-config>

次に、このネットワーク セキュリティ構成を使用するように AndroidManifest.xml ファイルを更新します。

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application ...
                 android:networkSecurityConfig="@xml/network_security_config"
                 ... >
        ...
    </application>
</manifest>

これで、モバイルアプリを起動すると、Charles のログで広告リクエストを確認できるようになります。