Konfigurowanie serwera proxy Charles

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

  1. Zaktualizuj Usługi Google Play na urządzeniu mobilnym.
  2. Włącz śledzenie sieci na urządzeniu mobilnym.
  3. Zainstaluj certyfikat SSL Charles na urządzeniu i skonfiguruj serwer proxy.
  4. Włącz serwer proxy SSL w aplikacji mobilnej.

Aktualizowanie usług Google Play na urządzeniu mobilnym

Jeśli w przypadku emulatora nie widzisz sekcji Google Play w menu bocznym, być może musisz zaktualizować Android Studio. Pobierz najnowsze obrazy systemu w Konfiguracji urządzenia wirtualnego i użyj obrazu systemu z Google Play jako celu.

Użyj menu bocznego, aby sprawdzić i zaktualizować Usługi Google Play do najnowszej wersji.

W przypadku fizycznego urządzenia mobilnego (telefonu lub tabletu) możesz wyszukać Google Play lub kliknąć ten link, aby otworzyć Google Play bezpośrednio.

Włączanie śledzenia sieci na urządzeniu mobilnym

Aby włączyć śledzenie sieci, włącz opcje programisty na urządzeniu. Więcej informacji znajdziesz w artykule Konfigurowanie opcji programisty na urządzeniu.

Otwórz aplikację Ustawienia Google i wybierz Google > Reklamy > Włącz rejestrowanie debugowania reklam. Więcej informacji znajdziesz w artykule na temat śledzenia sieci.

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ń reklam w dzienniku Charlesa.