배경 : 기존 앱 관련해서 갑자기 아래와 같은 오류가 떨어짐
내용 :
안드로이드에서 jsoup로 특정 url을 http로 접속 시 오류가 발생하였다.
원인은 안드로이드9(APL Lv 28) 부터 강화된 네트워크 보안정책으로 인한 오류.
예외 처리를 위한 3가지 방법 (1번을 선택하여 해결)
1. AndroidManifest.xml 파일의 <application> 부분에 android:usesCleartextTraffic="true" 로 설정
이 flag를 설정하게 되면 모든 cleartext 트래픽은 허용처리가 됩니다.
2. networkSecurityConfig 파일을 생성하고, AndroidManifest 에 등록
res/xml/network_security_config.xml 아래와 같이 추가
xxx.com 등록된 도메인은 https 가 아니어도 허용.
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">xxx.com</domain>
</domain-config>
</network-security-config>
아래와 같이 추가할 경우는 secure.xxx.com 도메인만 항상 HTTPS를 통해서만 수행
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
<domain includeSubdomains="true">secure.xxx.com</domain>
</domain-config>
</network-security-config>
그 다음에 AndroidManifest.xml 파일의 <application> 부분에 networkSecurityConfig속성 추가
<application
android:networkSecurityConfig="@xml/network_security_config"
~~~ >
</application>
3.Android Manifest.xml 파일에서 targetSandboxVersion를 1로 설정
SandboxVersion 속성값이 높을수록 보안 수준이 높아지며, 2일 경우 usesCleartextTraffic의 기본값은 false
따라서, 이 속성의 값을 1로 변경하면 문제를 해결
다만 Android 8.0 (API 26) 이상을 타겟팅하는 Android Instant Apps의 경우 이 속성을 2로 설정
참고로 앱이 설치되면 이 속성값을 더 높은 값으로 만 업데이트 할 수 있다고 함.
이 속성값을 다운 그레이드하려면 앱을 제거후 재설치 해야 함.
참고 : https://codinghero.tistory.com/131
https://hitomis.tistory.com/93
'개발 > 06.Android' 카테고리의 다른 글
[Android, iOS] FCM http v1 마이그레이션 (3) | 2024.07.19 |
---|---|
[Android] Android Studio에서 androidx 패키지 문제 해결 (2) | 2023.12.08 |
[Android Studio, intellij] 로그 한글 깨짐 현상 해결법 (2) | 2023.12.05 |
[Android] 파일 내 debug 라고 되어있는거 뭐야? 삭제해도되? (2) | 2023.11.23 |
[Android] 앱 아이콘 변경 (기존 앱 꺼 다른 이미지로 바꿔치기) (2) | 2023.11.21 |