Konfigurowanie serwera proxy Charlesa w przypadku pakietu SDK do reklam mobilnych Google na Androidzie w wersji N lub nowszej

Na Androidzie N lub nowszym wywołania reklam są widoczne w narzędziu proxy Charles tylko wtedy, gdy wykonasz te czynności:

  1. Zainstaluj na urządzeniu certyfikat SSL Charles i skonfiguruj serwer proxy.
  2. Włącz serwer proxy SSL dla aplikacji mobilnej.

Instalowanie na urządzeniu certyfikatu SSL Charles i konfigurowanie serwera proxy

Aby używać narzędzia Charles jako serwera proxy dla aplikacji, pobierz i zainstaluj je na komputerze.

Aby zapisać certyfikat jako plik .pem lub .cer, kliknij Help > SSL Proxying > Save Charles Root Certificate (Pomoc > Przekierowywanie SSL > Zapisz certyfikat główny Charles). Aby zainstalować certyfikat na urządzeniu, postępuj zgodnie z instrukcjami w sekcji Help > SSL Proxying (Pomoc > Przekierowywanie SSL).

Jeśli używasz emulatora Androida z serwerem proxy, ustaw adres serwera proxy na http://127.0.0.1. Ustaw port na wartość wyświetlaną w narzędziu Charles w sekcji Proxy > Proxy Settings (Serwer proxy > Ustawienia serwera proxy).

Jeśli używasz urządzenia fizycznego, połącz je z tą samą siecią Wi-Fi co komputer. Aby skonfigurować serwer proxy, otwórz zaawansowane ustawienia sieci na urządzeniu. Więcej informacji znajdziesz w artykule Jak łączyć się z sieciami Wi-Fi na telefonie Pixel. Aby znaleźć swój adres IP, w narzędziu Charles kliknij Help > Local IP Address (Pomoc > Lokalny adres IP). Na urządzeniu wpisz adres IP z narzędzia Charles i port Charles jako serwer proxy.

Włączanie serwera proxy SSL dla aplikacji mobilnej

Aby narzędzie Charles mogło przechwytywać ruch SSL aplikacji mobilnej, zadeklaruj, że aplikacja może ufać certyfikatowi SSL. Możesz zaufać certyfikatowi zainstalowanemu przez użytkownika lub osadzić certyfikat Charles jako zasób pierwotny w aplikacji. Możesz na przykład zapisać certyfikat w pliku res/raw/charles_cert.pem.

Najpierw dodaj nowy plik zasobu XML do konfiguracji zabezpieczeń sieci w pliku res/xml/network_security_config.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>

Następnie zaktualizuj plik AndroidManifest.xml, aby używać konfiguracji zabezpieczeń sieci.

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

Potem możesz uruchomić aplikację mobilną i poszukać żądań reklam w logu narzędzia Charles.