Como configurar o proxy do Charles para o SDK dos anúncios para dispositivos móveis do Google no Android N ou versões mais recentes

No Android N ou versões mais recentes, as chamadas de anúncio só ficam visíveis no proxy Charles quando as etapas a seguir são realizadas:

  1. Atualize o Google Play Services no dispositivo móvel.
  2. Ative o rastreamento de rede no dispositivo móvel.
  3. Instale o certificado SSL do Charles no dispositivo e configure o proxy.
  4. Ative o proxy SSL para seu app para dispositivos móveis.

Atualizar o Google Play Services no dispositivo móvel

Para um emulador, se a seção do Google Play não aparecer no menu lateral, talvez seja necessário atualizar o Android Studio e baixar as imagens de sistema mais recentes na Configuração do dispositivo virtual. Use uma imagem do sistema com o Google Play na meta.

Use o menu lateral para verificar e atualizar o Google Play Services para a versão mais recente. A versão mínima funcional do Google Play Services é 14.5.74.

Em um dispositivo móvel físico (smartphone ou tablet), pesquise "Google Play" ou siga este link para abrir o Google Play diretamente.

Ativar o rastreamento de rede no dispositivo móvel

Para ativar o rastreamento de rede, é necessário ativar as opções de desenvolvedor no seu dispositivo. Abra o app Configurações do Google e selecione Google > Anúncios > Ativar registro de depuração para anúncios. Um guia mais detalhado está disponível para editores da AdMob e do Google Ad Manager.

Instalar o certificado SSL do Charles no dispositivo e configurar o proxy

Para usar o Charles como proxy do seu app para dispositivos móveis, faça o download e instale o Charles em um computador. Siga as instruções do Charles para instalar um certificado SSL no emulador Android ou dispositivo móvel.

É mais simples usar o emulador com um proxy porque o emulador já está conectado à mesma rede Wi-Fi que o computador executando o Charles. Ao usar o emulador com um proxy, defina o proxy como localhost (http://127.0.0.1) e a porta em que o proxy Charles está sendo executado (encontrada na opção de menu do Charles Proxy > Proxy Settings).

Se você estiver usando um dispositivo móvel físico (smartphone ou tablet), conecte-o à mesma rede Wi-Fi do computador que executa o Charles usando as configurações avançadas de rede. Ao configurar as opções de proxy para seu dispositivo físico, use a opção de menu do Charles Ajuda > Endereço IP local para receber o endereço IP do seu computador e inserir o endereço de proxy no dispositivo. Para isso funcionar, você precisa estar na mesma rede Wi-Fi. Use a porta em que o proxy Charles está sendo executado.

Ativar o proxy SSL para seu app para dispositivos móveis

Para que o Charles intercepte o tráfego SSL do seu app para dispositivos móveis, é necessário declarar que o app pode confiar em um certificado SSL fornecido pelo usuário.

Primeiro, adicione um novo arquivo de recurso XML para a Configuração de segurança de rede em

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

Em seguida, atualize o arquivo AndroidManifest.xml para usar a configuração de segurança de rede.

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

Depois disso, inicie o app para dispositivos móveis e procure solicitações de anúncios no registro do Charles.