在采用 Android N 或更高版本的设备上为 Google 移动广告 SDK 设置 Charles Proxy

请选择平台: Android Android(旧版)

在 Android N 或更高版本中,只有在执行以下步骤后,广告请求才会显示在 Charles 代理中:

  1. 在设备上安装 Charles SSL 证书,并设置代理。
  2. 为移动应用启用 SSL 代理。

在设备上安装 Charles SSL 证书,并设置代理

如需将 Charles 用作应用的代理,请在计算机上下载并 安装 Charles。

如需将证书另存为 .pem 或 .cer 文件,请依次选择 Help > SSL Proxying > Save Charles 根证书 。如需在设备上安装证书,请按照 Help > SSL Proxying 中的提示操作。

如果您将 Android 模拟器与代理一起使用, 请将代理地址设置为 http://127.0.0.1。将端口设置为 Charles 中显示的 Proxy > 代理设置 值。

如果您使用的是实体设备,请将该设备连接到与计算机相同的 Wi-Fi 网络。如需设置代理,请打开设备的“高级网络设置”。如需了解详情,请参阅 在 Pixel 手机上连接到 WLAN 网络。 在 Charles 中,依次选择 Help > Local IP Address 以查找您的 IP 地址。在设备上,输入 Charles 中的 IP 地址和 Charles 端口作为代理。

为移动应用启用 SSL 代理

如需让 Charles 拦截移动应用的 SSL 流量,请声明您的应用可以信任 SSL 证书。您可以信任用户安装的证书,也可以将 Charles 证书作为原始资源嵌入到应用中。例如,您可以将证书保存在 res/raw/charles_cert.pem 文件中。

首先,在 res/xml/network_security_config.xml 文件中为 网络安全配置 添加新的 XML 资源文件:

<network-security-config>
   <debug-overrides>
       <trust-anchors>
           <!-- Trust Charles SSL certificate stored in res/raw -->
           <certificates src="@raw/charles_cert" />
           <!-- 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 日志中查找广告请求。