에르노트

페이스북 오디언스 네트워크 캐싱 오류 해결(Android 9) 본문

Dev/Android

페이스북 오디언스 네트워크 캐싱 오류 해결(Android 9)

두콩 2020. 7. 10. 20:33

앱에 광고를 게제해서 수익을 창출하기 위해 페이스북 오디언스 네트워크(Facebook Audience Network)를 사용해왔다.  그러던 중 오디언스 네트워크 SDK의 버전이 오래되었으니 최신 버전으로 업데이트하라는 알림을 받았고, 무심코 앱 단위 build.gradle에서 버전을 높여주었다. (5.5 -> 5.10.0)

 

 

그랬더니 다음과 같은 문제가 발생하기 시작했다..

 

캐시 실패 에러

해당 문제는 기존에 안드로이드9에서 발생하던 ERR_CLEARTEXT_NOT_PERMITTED 에러와 연결되어 있다. 그래서 페이스북에서도 이 해결법대로 자체적인 해결 가이드(네트워크 보안 구성)를 따로 마련해두었다. 즉 그대로 따라하기만해도 손쉽게 해결할 수 있다는 것이다. 여기서 핵심은 오디언스 네트워크가 localhost를 캐싱에 사용한다는 점이다. 안드로이드9부터는 보안상의 이유로 원칙적으로 http 접속을 허용하지 않는다. 따라서 매니페스트에서 http 접속을 전면적으로 허용하겠다고 명시하거나(android:usesCleartextTraffic="true") 허용할 도메인들을 추려서 등록해줘야 한다. 따라서 위와 같은 에러를 마주하지 않으려면 localhost127.0.0.1을 허용 도메인으로 등록해주면 되는 것이다.


해결 과정을 요약하자면 다음과 같다.

 

1. network_security_config.xml 파일을 xml 디렉토리에 새로 하나 만들고 아래 내용을 넣어준다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">127.0.0.1</domain>
    </domain-config>
</network-security-config>

 

2. AndroidManifest.xmlapplication 태그 아래에 android:networkSecurityConfig="@xml/network_security_config"
를 추가한다.

Comments