코딩하는 일용직 노동자

http CLEARTEXT 오류 수정하기. 본문

안드로이드

http CLEARTEXT 오류 수정하기.

bacass 2020. 6. 3. 15:22

안드로이드 9.0 Pie 부터는 https만 사용하도록 강제합니다.
만약 http로 연결을 시도하면 아래의 에러문구를 보실 수 있습니다.
CLEARTEXT communication to XXXX not permitted by network security policy

하지만 개발중에 접속하는 서버가 https 만으로 구성된 경우는 드믑니다. 이를 해결하기 위한 방법이 있습니다.

#1 targetSdk 버전을 28보다 작게 설정하면됩니다.
하지만 이것은 좋은 방법은 아닙니다. 언젠가는 올려야 하니까요.

#2 usesCleartextTraffic 을 true로 설정하면됩니다.
안드로이드 매니페스트 파일에 

<application
    android:usesCleartextTraffic="true" 
    ...
>

 

이렇게 설정을 합니다.
이러면 http 로도 연결이 됩니다. 
편리한 방법이긴 합니다만 정식 마켓등록하는 파일에 이런 설정이 되어있을 경우 리젝사유가 됩니다.

#3 res/xml 에 도메인을 등록합니다.
res/xml 에 network_security_config.xml 파일을 생성하고 아래의 내용을 넣습니다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">도메인1</domain>
        <domain includeSubdomains="true">도메인2</domain>
        <domain includeSubdomains="true">도메인3</domain>
    </domain-config>
</network-security-config>


그리고 매니페스트 파일에

<application
    android:networkSecurityConfig="@xml/network_security_config"
    ...
>

 

이렇게 등록해줍니다.

안드로이드가 버전업 할때마가 손봐줘야 할것들이 10개씩 늘어나는 기분입니다. ㅠ.ㅠ 모두 홧팅입니다.