Android N 이상 버전에서 Google 모바일 광고 SDK의 Charles 프록시 설정하기

플랫폼 선택: Android Android (레거시)

Android N 이상에서는 다음 단계를 실행해야만 Charles 프록시에 광고 호출이 표시됩니다.

  1. 모바일 기기에서 Google Play 서비스를 업데이트합니다.
  2. 모바일 기기에서 네트워크 추적을 사용 설정합니다.
  3. 기기에 Charles SSL 인증서를 설치하고 프록시를 설정합니다.
  4. 모바일 앱에 SSL 프록시를 사용 설정합니다.

모바일 기기에서 Google Play 서비스 업데이트

에뮬레이터의 경우 측면 메뉴에 Google Play 섹션이 표시되지 않으면 Android 스튜디오를 업데이트해야 할 수 있습니다. 가상 기기 구성에서 최신 시스템 이미지를 다운로드하고 Google Play 가 타겟에 있는 시스템 이미지를 사용합니다.

측면 메뉴를 사용하여 Google Play 서비스를 확인하고 최신 버전으로 업데이트합니다.

실제 모바일 기기 (휴대전화 또는 태블릿)의 경우 Google Play를 검색하거나 이 링크 를 따라 Google Play를 직접 열 수 있습니다.

모바일 기기에서 네트워크 추적 사용 설정

네트워크 추적을 사용 설정하려면 기기에서 개발자 옵션을 사용 설정합니다. 자세한 내용은 기기 내 개발자 옵션 구성을 참고하세요.

Google 설정 앱을 열고 Google > 광고 > 광고 디버그 로깅 사용 설정 을 선택합니다. 자세한 내용은 네트워크 추적을 참고하세요.

기기에 Charles SSL 인증서 설치 및 프록시 설정

Charles를 앱의 프록시로 사용하려면 컴퓨터에 Charles를 다운로드하여 설치합니다.

인증서를 .pem 또는 .cer 파일로 저장하려면 Help(도움말) > SSL Proxying(SSL 프록시) > Save Charles Root Certificate(Charles 루트 인증서 저장) 를 선택합니다. 기기에 인증서를 설치하려면 Help(도움말) > SSL Proxying(SSL 프록시) 의 안내를 따르세요.

프록시가 있는 Android 에뮬레이터를 사용하는 경우, 프록시 주소를 http://127.0.0.1로 설정합니다. Proxy(프록시) > Proxy Settings(프록시 설정) 에서 Charles에 표시된 값으로 포트를 설정합니다.

실제 기기를 사용하는 경우 기기를 컴퓨터와 동일한 Wi-Fi 네트워크에 연결합니다. 프록시를 설정하려면 기기의 고급 네트워크 설정을 엽니다. 자세한 내용은 Pixel 휴대전화에서 Wi-Fi 네트워크에 연결을 참고하세요. Charles에서 Help(도움말) > Local IP Address(로컬 IP 주소) 를 선택하여 IP 주소를 찾습니다. 기기에서 Charles의 IP 주소와 Charles 포트를 프록시로 입력합니다.

모바일 앱에 SSL 프록시 사용 설정

Charles가 모바일 앱의 SSL 트래픽을 가로채려면 앱이 SSL 인증서를 신뢰할 수 있다고 선언합니다. 사용자가 설치한 인증서를 신뢰하거나 Charles 인증서를 앱에 원시 리소스로 삽입할 수 있습니다. 예를 들어 인증서를 res/raw/charles_cert.pem 파일에 저장할 수 있습니다.

먼저 res/xml/network_security_config.xml 파일에 네트워크 보안 구성 의 새 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>

그런 다음 네트워크 보안 구성을 사용하도록 AndroidManifest.xml 파일을 업데이트합니다.

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

그런 다음 모바일 앱을 실행하고 Charles 로그에서 광고 요청을 찾을 수 있습니다.