[Android Studio] Google Play Console - 앱 API 수준 업데이트하기 (앱 업데이트 출시, 앱 API 수준 이상 타겟팅 방법, API 31 To 33) 

 

 

개요

구글 플레이 콘솔을 통해 출시된 앱이 다음과 같은 정책 경고 문구 출력되었다.

(해당 글은 안드로이드 API 수준이 31에서 33으로 업데이트하는 과정을 포스팅합니다.)

 

etc-image-0
etc-image-1

 

 

요약하자면,

 

현재 출시되어 있는 앱의 버전이 출시된지 1년 이내의 대상 API 버전을 지원하지 않기 때문에

최신 버전의 API를 지원하기 위해서 앱을 업데이트하라는 소리다.


안드로이드 API 수준 타겟팅 (31 -> 33)

SDK 버전 변경

(프로젝트 디렉토리 내에서) build.grade 파일을 열어 아래의 내용을 수정해줍니다.

  • compileSdkVersion : 기존 31 >  변경 33
  • targetSdkVersion : 기존 31 >  변경 33
  • versionCode : 기존 버전 +1

 

etc-image-2

 


동작 변경

 

안드로이드 13(API 33) 이상에서 앱이 정상 작동하기 위해서는 기존의 앱을 몇가지 수정하여야 한다.

자신의 앱이 아래에서 해당하는 부분이 있으면 해당 코드를 변경하자.

권한은 당연히 AndroidManifest 외에 자신이 권한을 확인하고 사용하는 부분의 코드도 같이 수정되어야 한다.

 

Wi-Fi API 사용하는 경우 (ACCESS_FINE_LOCATION)

위치 정보 액세스 권한 요청이 NEARBY_DEVICES 권한 그룹의 런타임 권한을 도입하였다.

때문에 AndroidManifest에 아래와 같이 바꿔주면 된다.

 
 
<!-- 기존 : 안드로이드 12 (API 수준 32) 이하 -->
 
<manifest>
 
<!-- Include only if your app benefits from precise location access. -->
 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 
</manifest>
 
 
 
<!-- 변경 : 안드로이드 13 (API 수준 33) -->
 
<manifest
 
<!-- API 33 에서 작동 -->
 
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"
 
android:usesPermissionFlags="neverForLocation" />
 
<!-- API 32 이하에서 작동, 이전 버전과의 호환성 유지 -->
 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
 
android:maxSdkVersion="32" />
 
</manifest>

 

앱이 안드로이드 13 이상을 타겟팅한다면 NEARBY_WIFI_DEVICES 권한을 선언하여 다음 Wi-Fi API를 호출해야 한다.

* 참고 : 안드로이드 개발자 - 근처 Wi-Fi 기기의 새 런타임 권한


미디어 파일에 액세스 해야하는 경우 (READ_EXTERNAL_STORAGE)

안드로이드 13에서는 다른 앱에서 만든 미디어 파일에 액세스해야 하는 경우,

기존의 READ_EXTERNAL_STROAGE 권한 대신 다음과 같은 세분화된 미디어 권한을 하나 이상 요청해야 한다.

READ_MEDIA_IMAGES 권한과 READ_MEDIA_VIDEO 권한을 동시에 모두 요청하면 시스템 권한 대화상자가 하나만 표시된다.

미디어 유형 요청 권한
이미지 및 사진 READ_MEDIA_IMAGES
동영상 READ_MEDIA_VIDEO
오디오 파일 READ_MEDIA_AUDIO

 

추가로 안드로이드 13(API 33)에서는 위의 권한을 사용하여 외부 저장소에 쓰기 작업을 수행할 수 있기 때문에

WRITE_EXTERNAL_STORAGE 권한이 더이상 필요하지 않다.

다만, 이전 버전과의 호환성 유지를 위해 AndroidManifest에 아래와 같이 바꿔주면 된다.

 

 
 
 
<manifest>
 
<!-- API 33 -->
 
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="33"/>
 
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="33"/>
 
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" android:minSdkVersion="33"/>
 
 
 
<!-- API 32 이하 -->
 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
 
</manifest>

생체 신호 센서를 사용하는 경우

심박수, 체온, 혈중 산소 농도와 같은 생체 신호 센서에 '사용 중인 동안' 액세스 라는 개념이 도입되었다.

따라서 앱이 안드로이드 13을 지원하려면 백그라운드에서 실행되는 동안

생체 신호 센서 정보에 액세스를 해야할 수 있는 새로운 권한이 필요하다.

기존 BODY_SENSORS 권한에 더해 새로운 BODY_SENSORS_BACKGROUND 권한을 선언해야 한다.


구글 플레이 서비스 광고를 사용하고 있는 경우

안드로이드13 이상에서는 광고 ID에 필요한 권한을 선언해야한다.

 

 

AndroidManifest에서 AD_ID 를 선언한다.

파이어베이스를 사용하는 경우에 AD_ID 권한이 자동으로 포함될 수 있으므로 확인해보는 것이 좋다.

 
 
<manifest>
 
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
 
</manifest>

테스트

권한 설정 및 기능이 정상적으로 작동하는지 확인한다.

안드로이드 13(API 33, Tiramisu Version) 타겟팅이 정상적으로 되었는지,

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

기존의 API 32 이하 환경에서 앱이 정상적으로 구동되는지의

두 가지 환경에서 앱이 정상적으로 구동되는지 테스트한다.

  • API 33 이상의 디바이스
  • API 32 이하의 디바이스

구글 플레이 콘솔에 앱 업데이트

 

 

구글 플레이 콘솔에서 '모든 앱' 카테고리에서 업데이트 할 앱을 선택한다.

 

etc-image-3

 

 

  •  '프로덕션' 카테고리를 선택 - 버전 수정

 

etc-image-4

 

 

  • App Bundle 아래의 네모 박스에 업로드할 abb 확장자 파일 업로드

 

etc-image-5

 

 

  • 앱 파일을 업로드하면 아래와 같이 업로드 중이라고 메시지가 출력된다.

 

etc-image-6

 

 

  • 업로드가 완료되면 앱에 대한 정보가 나오게 되며 앱을 등록할 수 있게 된다.
  • 다음 버튼 클릭

 

etc-image-7

 


참고

출처: https://luvris2.tistory.com/798 [고은별의 기술 공유 연구소:티스토리]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
» [Android Studio] Google Play Console - 앱 API 수준 업데이트하기 (앱 업데이트 출시, 앱 API 수준 이상 타겟팅 방법, API 31 To 33) file 졸리운_곰 2024.08.28 203
152 [android studio] 안드로이드 앱 배포, APK와 AAB file 졸리운_곰 2024.05.03 208
151 [Android SDK] [안드로이드] 접속된 네트워크 인터페이스의 IP 주소 가져오기 졸리운_곰 2024.05.02 191
150 [Android SDK] [안드로이드] 핸드폰 번호, 기기 고유 id 등 단말기 정보 가져오기 file 졸리운_곰 2024.05.02 451
149 [Android SDK] Android) 안드로이드 Jsoup로 웹크롤링 하기 (예제포함) - "데일리 브리핑 앱 개발기" file 졸리운_곰 2024.05.01 138
148 [Android SDK] [Android] Activity 생명주기와 이동 file 졸리운_곰 2024.05.01 182
147 [Android SDK] [Android] EditText 읽기 전용으로 만들기 졸리운_곰 2024.05.01 120
146 [Android SDK] 안드로이드: 간단한 데이터를 저장하고 싶을 때(SharedPreferences 사용예제) 졸리운_곰 2024.05.01 145
145 [Android SDK] [Android] Jsoup 으로 파싱하기 file 졸리운_곰 2024.05.01 146
144 [Android SDK] [Android] 안드로이드 - 액티비티(Activity)로부터 결과 데이터 받아오기 file 졸리운_곰 2024.05.01 166
143 [Android SDK] [안드로이드/Android] 기기 네트워크 연결 상태 확인 file 졸리운_곰 2024.05.01 138
142 [Android SDK] 안드로이드 - 메시징 - Toast 졸리운_곰 2024.05.01 201
141 [Android SDK] [Android] 안드로이드 Alert 창 띄우기 file 졸리운_곰 2024.05.01 170
140 [Android SDK] 버튼을 클릭하면, 동작하는 코드를 작성하는 방법 졸리운_곰 2024.05.01 120
139 [Android SDK] [ Android ] a webview method was called on thread 'javabridge' 에러가 발생했을 때 졸리운_곰 2024.05.01 202
138 [Android SDK] [안드로이드] Thread, TimerTask, Handler 반복 호출 만들기 JAVA 졸리운_곰 2024.05.01 157
137 [Android SDK] [Android] postDelayed()를 이용해서 주기적 메소드 실행 졸리운_곰 2024.05.01 144
136 [Android SDK] Making Android WebView autorefresh periodically 졸리운_곰 2024.05.01 168
135 [Android SDK] [안드로이드] 시스템 멈추기 - Sleep() 사용법 file 졸리운_곰 2024.05.01 140
134 [Android SDK] 안드로이드 스레드 예제. 스레드로 고민해보기. (Android Thread UseCase) file 졸리운_곰 2024.05.01 143
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED