본문 바로가기
Android

Google Play의 대상 API 수준 요구사항 충족시키기 (Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported`...)

by whoyoung90 2023. 9. 15.
반응형

> 구글 플레이 스토어 SDK 타깃 버전 상향 이슈 (2024.07.24 업데이트)

1. 23년 08월 31일까지 Android 13 (API 수준 33) 이상을 타겟팅 요구

 

2. 24년 08월 31일까지 Android 14 (API 수준 34) 이상을 타겟팅 요구

구글 플레이 스토어에서 2023년부터 매년 최소 API 수준을 갱신하라고 요구하고 있는데,

올해에는 신규 앱과 앱 업데이트는 Android 14 (API 수준 34) 이상을 타겟팅해야 Google Play에 제출할 수 있다고 한다.

 

> 최신 SDK를 타겟팅해야하는 이유?

각 앱은 매니페스트 파일에 targetSdkVersion(대상 API 수준)을 지정한다.

새로운 Android 버전이 출시될 때마다 보안 및 성능 등의 Android 사용자 환경이 개선되는데,

이러한 변경사항 중 일부는 매니페스트 파일의 targetSdkVersion(대상 API 수준) 속성을 통해 지원을 명시적으로 선언한 앱에만 적용된다고 한다.

 

최신 API 수준을 타겟팅하도록 앱을 구성하면 사용자가 보안, 개인 정보 보호, 성능 개선의 혜택을 받을 수 있으며, 이전 Android 버전(지정된 minSdkVersion까지)에서도 앱을 실행할 수 있다고 한다.

 

사실 이러한 내용들은 체감이 안되고.. 개발자 입장에서는 구글 플레이 스토어에서 공지한 최신 SDK를 타겟팅하지 않으면

명시기간 이후 "이 앱은 이전 버전의 안드로이드를 위해 만들어진 앱"이라는 메시지와 함께 신규 유저의 어플 다운로드가 불가능해진다.😂

기존 앱이 Android 13 (API 수준 33) 이상을 타겟팅해야 앱의 대상 API 수준보다 상위 버전의 Android OS를 실행하는 기기에서 신규 사용자가 계속 사용할 수 있습니다.  (출처: https://developer.android.com/)

 

https://developer.android.com/google/play/requirements/target-sdk?hl=ko

 

Google Play의 대상 API 수준 요구사항 충족  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Google Play의 대상 API 수준 요구사항 충족 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. APK를 업로드하

developer.android.com

https://support.google.com/googleplay/android-developer/answer/11926878?hl=ko

 

Google Play 앱의 대상 API 수준 요구사항 - Play Console 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

> 이슈

build.gradle 파일에서 compileSdkVersion, targetSdkVersion 값을 33으로 변경하고

android {
    compileSdkVersion 33
    buildToolsVersion '33.0.0'

    defaultConfig {
        applicationId "com.test"
        minSdkVersion 16
        targetSdkVersion 33
		...

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    .
    .
    .
    .

 

빌드했더니 아래와 같은 에러가 떴다.

Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined.

 

> 해결

AndroidManifest.xml 파일의 activity, service, receiver에

android:exported를 기본적으로 추가하여 true 또는 false 값을 추가하면 된다.

https://developer.android.com/guide/topics/manifest/activity-element?hl=ko

 

Android 개발자  |  Android Developers

애플리케이션의 시각적 사용자 인터페이스 일부를 구현하는 활동(Activity 서브클래스)을 선언합니다. 모든 활동은 매니페스트 파일의 {@code} 요소로 나타내야 합니다. 여기에 선언되지 않은 활동

developer.android.com

 

[참조 URL]

https://ddasi-live.tistory.com/101

반응형

댓글