본문 바로가기

개발 이야기/플러터 개발

안드로이드 net::ERROR_CLEARTEXT_NOT_PERMITTED 에러 해결방법

728x90

Problem

안드로이드 P(Android 9.0 (API level 28)) 부터 cleartext를 요청하는 기능이 기본적으로 비활성화 되었다. 타깃 SDK를 28이전으로 사용했다면 상관없지만 업데이트 후 문제가 발생할 수 있다.

Solution

res/xml에 network_security_config.xml 파일을 만들고 내용을 다음과 같이 한다. cleartextTrafficPermitted를 false로 변경하면 https만 허용된다. 보안파일 구성에 대해서 더 알아보고자 한다면 여기를 참고한다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">domain.com</domain>
    </domain-config>
</network-security-config>
AndroidManifest.xml에 아래처럼 networkSecurityConfig를 설정한다.

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

 

AndroidManifest.xml 에서 android:usesCleartextTraffic를 true로 설정한다. 웹뷰를 사용해야 한다면 이 옵션을 사용해야 한다.

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

 

AndroidManifest.xml 에서 targetSandboxVersion를 1로 설정한다. targetSandboxVersion의 버전은 높을 수록 더 높은 보안설정을 사용한다. 기본설정은 2이다.

<?xml version="1.0" encoding="utf-8"?>
<manifest android:targetSandboxVersion="1">
    <uses-permission android:name="android.permission.INTERNET" />
    ...
</manifest>

(출처: https://www.mrlatte.net/code/2019/04/28/android-net-error-cleartext-not-permitted.html   )

 

 

 

(추가1)

참고로 국내 리눅스 커뮤니티들의 게시판들을 모두 모아 하나의 앱으로 볼 수 있는

앱이 있고 또 원하는 주제의 키워드로 검색도 가능합니다.

해당 앱은 '리눅스올킬' 이라는 앱이고 하기 링크에서 다운로드 가능합니다.

:=> https://play.google.com/store/apps/details?id=com.opensupport.LinuxQnA 

 

리눅스올킬 (리눅스 관련 질문과 답변을 위한 정보와 커뮤니티 소식을 한번에 모아서 보자!) - Goo

리눅스 관련 질문과 답변 등의 모든 정보와 커뮤니티 소식을 한번에 모아서 보자!

play.google.com

 

 

 

그럼,

    공유합니다.