ERR_CLEARTEXT_NOT_PERMITTED 오류 해결 방법

Error|2020. 6. 22. 06:00

ERR_CLEARTEXT_NOT_PERMITTED 오류 해결 방법


안드로이드가 버전이 높아지면서 webview에 http://로 접근이 더 이상 되지 않는 버전이 있습니다. 제대로 접속이 되지 않기에 관련 에러가 발생을 합니다. http로 접근이 막혀있기에 관련 설정을 추가를 한다면 정상적으로 해당 사이트에 접속을 할 수도 있습니다. ERR_CLEARTEXT_NOT_PERMITTED 오류 해결 방법에 대해 알아보도록 해요.


Android OS 9 Pie 버전 부터 http접근이 막혀있으니 프로그래밍을 할 때 참고를 하시면 됩니다. 웹뷰와 관련이 된 에러입니다.




res/xml/network_security_config.xml


<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

    <domain-config cleartextTrafficPermitted="true">

        <domain includeSubdomains="true">ebookfrenzy.com</domain>

    </domain-config>

    <domain-config cleartextTrafficPermitted="true">

        <domain includeSubdomains="true">amazon.com</domain>

    </domain-config>

    <domain-config cleartextTrafficPermitted="true">

        <domain includeSubdomains="true">nytimes.com</domain>

    </domain-config>

</network-security-config>


res/xml/network_security_config.xml 파일을 추가를 합니다.


위의 res/xml/network_security_config.xml 파일 추가 후에는 AndroidManifest.xml 에서 application에 networkSecurityConfig속성을 추가를 합니다.


AndroidManifest.xml 에서 application에 networkSecurityConfig속성을 추가


<?xml version="1.0" encoding="utf-8"?>

<manifest ...>

    ...

    <application

        ...

        android:networkSecurityConfig="@xml/network_security_config"


위의 방법은 network_security_config.xml 파일에 앱 내 텍스트로 사용할 URL들이 정의가 되어 있어야 합니다. cleartextTrafficPermitted 속성이 true일 경우에만 동작을 합니다. 속성을 수정을 해야 합니다. 


AndroidManifest.xml 에서 application 의 usesClearTextTraffic 속성 수정


<?xml version="1.0" encoding="utf-8"?>

<manifest ...>

    ...

    <application

        ...

        android:usesCleartextTraffic="true"


위의 방법은 텍스트 URL 을 허용을 무조건 하게 됩니다.


Android Manifest.xml에서 manifet의 targetSandboxVersion 속성을 사용 중일 경우이면 속성 값이 높아질 수록 보안 수준이 높아질 수도 있습니다. 2이면 usesCleartextTraffic의 기본 값이 false가 됩니다. 속성 값을 1로 변경 해야 합니다. Android 8.0 (API 26) 이상을 타겟팅하는 Android Instant Apps이라면 속성을 2로 설정을 해야 합니다.


안드로이드 버전이 높아지면서 보안에 대해 예전 보다는 강화되고 있습니다.


<?xml version="1.0" encoding="utf-8"?>

<manifest android:targetSandboxVersion="1">


유니티로 게임 프로그래밍을 할 때에 서버와 통신을 할 때에 안드로이드 버전이 높아 해당 서버로 접속을 하지 못하는 경우도 있습니다. 해당 에러가 발생을 할 경우에 위와 같이 설정을 하여 해결을 할 수도 있습니다.

댓글()