Android Target API 31 (Android 12) 업데이트 안내
팔로우
Android 12 적용 일정
구글은 2022년 6월 Android 개발자 공지를 통해 모든 앱 개발자는 Google Play 를 통해 출시되는 앱의 Android Target API 를31(Android12) 이상으로 설정해야 한다고 안내했습니다.
이를 지키지 않는 앱에 대해서는 앱 제출이 거부되거나 심사에서 반려가 될 수 있습니다.
- 신규 앱 제출 : 2022년 8월부터 적용
- 앱 업데이트 제출 : 2022년 11월부터 적용
새로운 Android 버전이 출시될 때마다 보안 및 성능이 개선되며 Android 사용자 환경이 향상되기 때문에 구글은 항상 최신의 Android SDK를 적용하는 것을 권장하고 있습니다. Android12 SDK에 대한 자세한 변경사항 및 요구사항에 대해서는 아래 구글개발자문서를 확인해주세요.
Android 12 SDK 적용하기
Android12 API로 개발하고 동작을 테스트하려면 안드로이드 프로젝트에 Android 12 SDK를 설정해야 합니다.
안드로이드 스튜디오(혹은 사용 중이신 IDE)에서 Android12 SDK를 설정하고 앱 빌드 타겟을 수정하세요.
SDK 설치하기
아래 내용을 참고하여 앱에 Android 12 SDK를 적용합니다.
- 안드로이드 스튜디오의 Tools > SDK Manager를 클릭
- SDK Platforms 탭에서 Android 12를 선택
- SDK Tools 탭에서 Android SDK Build-Tools 31을 선택
- OK를 클릭하여 SDK를 설치
- 앱의 모듈 수준의 build.gradle 파일을 아래와 같이 수정
android {
compileSdkVersion 31
defaultConfig {
targetSdkVersion 31
}
}
최신 디파이너리SDK 적용하기
Android 12 SDK에 최적화된 디파이너리SDK를 적용합니다. 최적화 SDK를 적용하지 않으면 일부 기능이 정상동작하지 않거나, 앱이 강제로 종료될 수 있습니다.
SDK 설치하기
[build.gradle (Module: app)] 파일에 다음과 같이 dependency 를 추가합니다.
자세한 내용은 디파이너리(애드브릭스) 연동하기[Android] 문서를 참고해주세요
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.android.installreferrer:installreferrer:2.2'
implementation 'io.dfinery:android-sdk:2.5.1.5'
}
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.android.installreferrer:installreferrer:2.2'
implementation('io.dfinery:android-sdk:2.5.1.5'){
exclude group: 'com.android.support'
}
}
딥링크/앱링크 오픈 액티비티 설정 수정하기
AndroidManifest.xml에 등록된 component가 intent-filter 태그를 포함하는 경우에는 반드시 android:exported 옵션을 설정해야 합니다.
해당 component가 타 앱에서 호출한 이벤트를 수신하는 경우에는 true로 설정하여야 합니다.
따라서 아래와 같이 디파이너리 딥링크 오픈 액티비티의 android:exported 옵션을 true로 설정합니다.
<activity
android:name=".MyDeeplinkGateActivity"
android:exported="true"> <!-- <<< true로 설정합니다 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="my_scheme"android:host="my_host"/>
</intent-filter>
</activity>
<activity
android:name="com.igaworks.v2.core.application.AbxDefaultDeeplinkActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:noHistory="true"
android:exported="true"> <!-- <<< true로 설정합니다 -->
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--딥링크 스키마와 호스트를 입력합니다. -->
<data android:scheme="your_scheme" android:host="your_host" />
</intent-filter>
<!-- AbxDefaultDeeplinkActivity가 오픈할 실제 딥링크 액티비티의 path를 android:value에 설정합니다. -->
<meta-data android:name="AbxRedirectActivity" android:value="com.my.Activity"/>
</activity>
푸시 리시버 설정 수정하기
AndroidManifest.xml에 등록된 component가 intent-filter 태그를 포함하는 경우에는 반드시 android:exported 옵션을 설정해야 합니다.
해당 component가 타 앱에서 호출한 이벤트를 수신하는 경우에는 true로 설정하여야 합니다.
따라서 아래와 같이 디파이너리 그로스 액션 푸시 리스너의 android:exported 옵션을 true로 설정합니다.
<receiver
android:name="com.igaworks.v2.core.push.notification.AbxPushReceiver"
android:exported="true" <!-- <<< true로 설정합니다 -->
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.igaworks.v2.core.pushServiceImplement.CLIENT_PUSH_RECEIVE" />
</intent-filter>
</receiver>
FAQ
1. Target API 31 업데이트와 DFINERY SDK 업데이트를 같이 해야 하나요?
- Target API 31 업데이트 없이도 DFINERY SDK 최신 버전은 정상적으로 동작합니다.
- 단 Target API 31 롤 업데이트 시에는 반드시 DFINERY SDK 역시 최신 버전으로 업데이트를 해야 합니다.
2. Deeplink / Applink 에 변경 사항이 있는데 이는 DFINERY 콘솔 쪽도 변경해야 하는 부분이 있을까요?
- 아닙니다. 이번 Deeplink / Applink 업데이트는 앱 내 Androidmanifest 상의 설정 업데이트일 뿐이며 DFINERY 콘솔 내 딥링크 설정은 변경 사항이 없습니다.
추가로 궁금하신 점이 있으시면 언제든 본 메일로 회신을 부탁드립니다.
DFINERY Customer Support : support-tracker@adbrixsupport.zendesk.com