에르노트
페이스북 오디언스 네트워크 캐싱 오류 해결(Android 9) 본문
앱에 광고를 게제해서 수익을 창출하기 위해 페이스북 오디언스 네트워크(Facebook Audience Network)를 사용해왔다. 그러던 중 오디언스 네트워크 SDK의 버전이 오래되었으니 최신 버전으로 업데이트하라는 알림을 받았고, 무심코 앱 단위 build.gradle에서 버전을 높여주었다. (5.5 -> 5.10.0)
그랬더니 다음과 같은 문제가 발생하기 시작했다..
해당 문제는 기존에 안드로이드9에서 발생하던 ERR_CLEARTEXT_NOT_PERMITTED 에러와 연결되어 있다. 그래서 페이스북에서도 이 해결법대로 자체적인 해결 가이드(네트워크 보안 구성)를 따로 마련해두었다. 즉 그대로 따라하기만해도 손쉽게 해결할 수 있다는 것이다. 여기서 핵심은 오디언스 네트워크가 localhost를 캐싱에 사용한다는 점이다. 안드로이드9부터는 보안상의 이유로 원칙적으로 http 접속을 허용하지 않는다. 따라서 매니페스트에서 http 접속을 전면적으로 허용하겠다고 명시하거나(android:usesCleartextTraffic="true") 허용할 도메인들을 추려서 등록해줘야 한다. 따라서 위와 같은 에러를 마주하지 않으려면 localhost인 127.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.xml의 application 태그 아래에 android:networkSecurityConfig="@xml/network_security_config"
를 추가한다.
'Dev > Android' 카테고리의 다른 글
리사이클러뷰 깜빡임 현상 제거 [setItemViewCacheSize()] (1) | 2020.03.03 |
---|---|
[안드로이드] 다른 앱에서 공유 목록에 내 앱 띄우기 (0) | 2020.02.12 |
안드로이드 카메라 프리뷰 예제(Camera2 API, 코틀린) (6) | 2020.02.07 |
Room 라이브러리 어노테이션 에러 해결 (0) | 2020.01.28 |