Google 정책에 따른 조치사항을 알려드립니다

안녕하세요 휴머스온입니다. Google의 플레이스토어 배포 정책이 변경되어 어플리케이션에 조치가 필요하게 되었습니다. 가이드에 맞게 조치를 하지 않을 경우 특정 조건에 따라 앱이 강제 종료 될 수 있기 때문에 되도록 가이드에 따라 반영하여 주시기 바랍니다.

변경된 플레이스토어 배포 정책

대상 SDK 버전 변경에 따른 조치사항

1. Apache HTTP 클라이언트 지원 중단

Android 9.0에서 Apache HTTP 클라이언트 지원이 중단되었습니다. 실제로 지원이 중단된 것은 Android 6.0 버전이나 Android 9.0 이상부터는 특정 예외 처리 없이 Apache HTTP 클라이언트를 사용할 경우 NoClassDefFoundError 예외가 발생합니다.

대응하지 않을 경우

이미지가 포함된 푸시를 수신받았을때 앱이 강제 종료됩니다.

적용대상
해결방법

어플리케이션 AndroidManifest.xml에 다음 사항을 추가하여 주시기 바랍니다.

<uses-library android:name="org.apache.http.legacy" android:required="false"/>
2. 프레임워크 보안 변경사항

Android 9.0에서 TLS를 사용한 통신이 기본값으로 적용되었습니다. 그에따라 별도로 예외처리 하지 않고 TLS를 사용하지 않은 연결을 사용한다면 실패로 처리됩니다.

대응하지 않을 경우

API 호출 시 실패 응답이 떨어집니다. 앱은 강제 종료되지 않습니다.

적용대상
해결방법

해결 방법은 두가지 방법이 있으며 방법 중 한 가지 방법만 적용하여도 무방합니다.

3. Android X 전환 대응

Android X 전환이란 Android에서 제공하는 Support Library를 Android X 라이브러리로 일대일 전환하는 것을 의미하며, 최신 버전의 AndroidStudio에서 강제적으로 Android X로의 전환을 강제적으로 요구하는 경우가 확인되었습니다. 이 경우 어플리케이션에서만 Android X 전환 대응을 한다면 ClassNotFoundException이 발생하므로 SDK도 Android X 대응 전용을 사용해야 합니다.

구글 플레이는 대상 SDK 버전 28만을 요구하고 있기 때문에 Android X 전환은 필수 사항이 아니므로 전환 대응을 할지 말지 선택이 필요합니다.

적용대상
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:18:5-100:19 to override.
해결방법