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

W systemie Android N lub nowszym wywołania reklam są widoczne w serwerze proxy Charles tylko po wykonaniu tych czynności:

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

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

Aby używać Charlesa jako serwera proxy dla aplikacji, pobierz i zainstaluj Charlesa na komputerze.

Aby zapisać certyfikat jako plik .pem lub .cer, wybierz Help > SSL Proxying > Save Charles Root Certificate (Pomoc > Proxy SSL > Zapisz certyfikat główny Charles). Aby zainstalować certyfikat na urządzeniu, postępuj zgodnie z instrukcjami w sekcji Help > SSL Proxying (Pomoc > Serwer proxy 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 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. Szczegółowe informacje znajdziesz w artykule Jak łączyć się z sieciami Wi-Fi na telefonie Pixel. W Charles wybierz Help > Local IP Address (Pomoc > Lokalny adres IP), aby znaleźć swój adres IP. Na urządzeniu wpisz adres IP z Charles i port Charles jako serwer proxy.

Włączanie serwera proxy SSL w aplikacji mobilnej

Aby Charles mógł przechwytywać ruch SSL aplikacji mobilnej, zadeklaruj, że aplikacja może ufać certyfikatowi SSL. Możesz zaufać certyfikatowi zainstalowanemu przez użytkownika lub umieścić certyfikat Charles jako zasób niezdefiniowany w aplikacji. Możesz na przykład zapisać certyfikat w pliku res/raw/charles_cert.pem.

Najpierw dodaj nowy plik zasobów XML dla 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>

Następnie możesz uruchomić aplikację mobilną i poszukać żądań reklamy w dzienniku Charlesa.