프로그래밍/Android
[Android] targetSdkVersion 28 이상 버전 HTTP 사용
gigas
2019. 12. 24. 07:00
728x90
반응형
Android Studio 가 업데이트 됨에 따라 Gradle 버전도 올라가고, 최소 TargetSdkVersion 도 자연스럽게 올라갑니다.
회사 내부에서만 사용하는 앱은 HTTPS 가 아닌 HTTP로만 통신을 하고 있습니다.
즉 SSL인증서 적용을 하지 않은건데 targetSdkVersion 28 이상에서는 HTTP 사용을 보안정책에 의해 허용하지 않고 있습니다.
Android Build를 진행한다면 아래와 같은 오류가 발생하면서 통신이 거부 됩니다.
java.net.UnknownServiceException: CLEARTEXT communication to 0.0.0.0 not permitted by network security policy
그래도 내부 프로젝트만 사용한다면 인증서가 필요없으니 강제로 보안정책을 허용 해주도록 하겠습니다.
app -> manifests -> AndroidManifest.xml 을 open 합니다.
android 수준에서 usesCleartextTraffic 이라는 속성을 true로 해주면 보안정책을 허용해주게 됩니다.
<application
...
android:usesCleartextTraffic="true">
...
</application>
저장을 하고 다시 build를 해봅시다.
정상적으로 통신이 되는것을 확인하셨다면 끝난겁니다.
한줄의 추가로 SSL인증서를 무시했지만 내부에서만 사용하는 서비스에만 사용을 권해 드립니다.
728x90
반응형