개발 이야기/플러터 개발
안드로이드 net::ERROR_CLEARTEXT_NOT_PERMITTED 에러 해결방법
opensupport.xyz
2021. 7. 7. 10:30
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
그럼,
공유합니다.
728x90