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

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

在 Android N 或更高版本上,只有在执行以下步骤后,才能在 Charles 代理中看到广告调用:

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

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

如需将 Charles 用作移动应用的代理,您需要在电脑上下载并安装 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 证书。

首先,您需要在 Network Security Configuration 下添加新的 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 日志中查找广告请求。