본문 바로가기

Android

CLEARTEXT communication to `domain` not permitted by network security policy

android 28 지원을 위해 슬슬 작업해볼까 하고 gradle 을 수정후 앱을 실행 하자 마자 맞닥드린 오류 =_ =

찾아보니
- https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted
- http://www.douevencode.com/articles/2018-07/cleartext-communication-not-permitted/

Network security configuration
- https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

회사 서버는 p 와 s 를 모두 지원하고 있고 샤크로 디버깅을 종종해야 했기 때문에 p 를 이용했는데
기본형태로는 더 이상 p 를 지원하지 않고 s 만 지원하는 듯 싶다.

p 를 허용하기 위해서는 res/xml/network_security_config.xml 파일을 생성 한 뒤
아래와 같이 입력 하고
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">당신의 앱이 사용하는 도메인 또는 아이피</domain>
    </domain-config>
</network-security-config>

AndroidManifest.xml 파일의 application element 에 networkSecurityConfig attribute 에 config 파일을 설정하면 된다.
<application
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        <activity android:name=" (...)
    </application>

'Android' 카테고리의 다른 글

ndk 그리고 cmake  (0) 2018.09.13
api level 28 에서 getDrawingCache 가 deprecated 되었다.  (0) 2018.09.12
Failed to find byte code for $classPath  (0) 2018.09.06
android x  (0) 2018.08.31
calling koltin from java  (0) 2018.08.31