일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 라이브러리
- 안드로이드
- 이미지로딩 라이브러리
- 아마존웹서비스
- Mac
- 커스텀뷰
- Picasso
- AWS
- 안드로이드 라이브러리
- Glide
- VMware
- OTTO
- 안드로이드 스튜디오
- ButterKnife
- Logcat
- Today
- Total
박상권의 삽질블로그
[안드로이드]CLEARTEXT communication to XXXX not permitted by network security policy 본문
[안드로이드]CLEARTEXT communication to XXXX not permitted by network security policy
박상권 2018. 12. 9. 20:39
안드로이드 개발자들이 모여있는 오픈채팅방에 참여해보세요 .
Q&A 및 팁을 공유하는 방입니다..
오픈채팅방 참여
블로그를 Medium으로 옮겨서 운영하고 있습니다.
앞으로 새로운 글은 모두 미디엄 블로그를 통해서 올릴 예정입니다.
미디엄에서 다양하고 유익한 포스팅을 살펴보세요
미디엄 블로그 보기
이번에 '클린 아키텍처'를 주제로 온라인 강의를 개설하게 되었습니다 🎉
평소 오픈채팅방이나 여러 커뮤니티에서 '클린 아키텍처'와 관련된 질문들이 많았는데요. 이를 해결해줄 수 있는 마땅한 강의가 없었던것 같습니다.
평소 '클린 아키텍처' 에 대한 궁금증이나 관심이 있으셨던 분들이 수강해보시면 도움이 될것 같아요
강의 살펴보기
"CLEARTEXT communication to XXXX not permitted by network security policy"
어느날 코드를 바꾼게 없는데도 위와 같은 오류가 발생하면서 앱이 실행이 안되는 일이 발생합니다.
그 이유는 여러분 혹은 사용자폰의 OS가 안드로이드 9.0 파이(Pie)이기 때문입니다.
그리고 여러분이 사용하는 API주소, 이미지주소 등 네트워크 경로가 https가 아닌 http로 되어 있기 때문입니다.
안드로이드 9.0 파이에서는 https를 사용하도록 강제합니다.
주소가 http인경우 위와같은 에러메세지가 발생하게 됩니다.
Protecting users with TLS by default in Android P
그외 안드로이드 9.0 파이에서 추가/변경된 내용 살펴보기
2018.12.09 기준으로 아직 안드로이드 9.0 파이버전이 정식배포되지 않아서 이 오류를 발견하신분들은 많지 않을것입니다.
지금까지 우리는 마시멜로우, 오레오 등으로 OS를 업데이트할때마다 여러 이슈들에 맞닥뜨린 경험이 많았습니다.
그래서 저는 파이버전이 미리 배포되기전에 직접 제 폰을 업데이트해서 앞으로 발생할 이슈가 없는지 체크해보았습니다.
(삼성 멤버스앱에서 베타 프로그램에 가입하면 파이버전으로 업데이트해서 테스트해볼 수 있습니다.)
해결방법1
아주 간단합니다.
현재 앱안에서 사용중인 네트워크 주소를 http -> https 로 변경하세요.
그럼 더이상 바꿀 코드가 없습니다.
해결방법2
물론 1번 방법으로 간단하게 변경할 수 없는 경우가 있습니다.
서버에서 아직 https로 구성되어 있지 않은경우에는 어쩔수없이 http로 사용해야합니다.
그럴때는 해당 서버주소를 http여도 실행되도록 허용해주도록 설정해줍니다.
res/xml 에 아래와 같은 xml파일을 만들어 줍니다.
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.xxx.com</domain>
</domain-config>
</network-security-config>
그리고 Manifest에 이 xml파일을 config파일로 지정해줍니다.
<application
...
android:networkSecurityConfig="@xml/network_security_config">
해결방법 2-1
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
해결방법3
위의 방법보다 더 간단한 방법도 있습니다.
Android Manfest에서 usesCleartextTraffic를 true로 설정합니다.
<application
...
android:usesCleartextTraffic="true">
이 방법이 2번의 방법보다 훨씬 간단한데 어떤점에서 안좋은게 있는것인지는 아직 알 수 없습니다.
혹시 3번의 방법의 단점을 아시는분은 댓글로 알려주시면 감사하겠습니다.
구글님 저희가 잘못했습니다.. 어린양을 괴롭히지 말아주세요..
안드로이드 기기의 파편화만으로도 대응하기 너무 힘든데 API레벨 OS별로 대응을 하도록 하지 않도록 도와주세요.
하지만 우린 답을 찾을것이다. 늘 그랬듯이
( [IT/Android-TIP (한글)] - [안드로이드]Only fullscreen opaque activities can request orientation 과 중복주의)
그럼 모든 안드로이드 개발자분들의 정신건강을 응원합니다.
피쓰.
'IT > Android-TIP (한글)' 카테고리의 다른 글
[안드로이드/Android]TedKeyboardObserver (키보드 show/hide 감지) (2) | 2019.06.20 |
---|---|
코틀린(Kotlin), 꼭 해야하나요? (4) | 2019.05.15 |
[안드로이드]Only fullscreen opaque activities can request orientation (5) | 2018.07.18 |
[안드로이드]Firebase Dynamic Link로 사용자 유입시키기 (2) | 2018.05.29 |
[안드로이드/Android]8.0 오레오 알림채널(Notification Channel) 대응하기 (3) | 2018.02.04 |