Computer >> 컴퓨터 >  >> 시스템 >> Android

Android 14 호환성을 위해 앱을 최신 Play Core 라이브러리로 마이그레이션하는 방법

최근 구글 플레이 스토어에서 아래와 같은 내용의 이메일을 받으셨을 수 있습니다.

"Play Core Maven 종속성을 Android 14 호환 버전으로 업데이트하세요! 현재 사용 중인 Play Core 라이브러리는 targetSdkVersion 34(Android 14)와 호환되지 않습니다. Android 14는 사용자 보안 강화를 위해 브로드캐스트 리시버에 하위 호환되지 않는 변경 사항을 도입했습니다. 참고로 8월 31일부터 Google Play는 모든 신규 앱 출시 시 Android 14 타겟팅을 요구합니다. 앱 크래시를 방지하려면 최신 Play Core 라이브러리 버전으로 업데이트하세요."

"이 SDK 버전을 사용하면 향후 앱 버전을 프로덕션 또는 오픈 테스팅에 출시할 수 없게 될 수 있습니다."

꽤 위협적으로 들리죠?

하지만 너무 걱정하지 마세요. 사실 생각보다 훨씬 간단합니다.

변경 사항의 실제 의미

핵심은 Google이 2022년 초부터 기존 play core 라이브러리의 새 버전 출시를 중단했다는 점입니다.

마지막으로 출시된 play core 라이브러리 버전

그리고 2022년 4월부터 기존 play core 라이브러리를 다음과 같이 네 개의 개별 라이브러리로 분리했습니다.

  • Play Assets Delivery 라이브러리
  • Play Feature Delivery 라이브러리
  • Play 인앱 리뷰(In-App Reviews) 라이브러리
  • Play 인앱 업데이트(In-App Updates) 라이브러리

각 라이브러리는 고유한 기능과 역할을 담당합니다.

기존 play core 라이브러리는 일정 API 수준까지만 지원하기 때문에, 최신 API 수준을 지원하는 새 라이브러리로 애플리케이션을 마이그레이션해야 합니다.

정리하자면, 먼저 기존 play core 라이브러리에서 어떤 기능을 사용하고 있었는지 파악한 뒤, 그에 맞는 올바른 라이브러리를 추가하면 됩니다. 예를 들어 앱의 새 버전이 출시되었을 때 사용자에게 알려주는 로직이 있다면 Play 인앱 업데이트(In-App Updates) 라이브러리를 사용해야 합니다.

이 글에서는 두 가지 사용 사례를 다룹니다.

  • 네이티브 안드로이드 앱
  • Flutter 앱

사용 사례 1 – 네이티브 안드로이드 앱

Kotlin이든 Java든 네이티브 안드로이드 앱이라면 다음 단계를 따르면 됩니다.

  1. 앱 수준(app-level) build.gradle 파일을 엽니다.
  2. dependencies 블록 안에 대부분 다음과 같은 줄이 있을 것입니다.
implementation 'com.google.android.play:core-ktx:1.8.1'
  1. 이 줄을 제거하고, 기존 core 라이브러리에서 사용했던 기능에 맞는 종속성으로 교체합니다.
  2. Play 인앱 업데이트 라이브러리가 필요하다면 dependencies 블록에 다음을 추가합니다.
implementation 'com.google.android.play:app-update:2.1.0'
// Kotlin을 사용하는 경우 아래 종속성도 추가하세요
implementation 'com.google.android.play:app-update-ktx:2.1.0'
  1. 앱을 다시 빌드하고 모든 기능이 정상적으로 작동하는지 확인합니다.

✋ 추가로 import 문을 import com.google.android.play.core.tasks.*;에서 import com.google.android.gms.tasks.*;로 변경해야 할 수도 있습니다.

사용 사례 2 – Flutter 앱

Flutter는 Android와 iOS를 모두 지원하는 프레임워크이므로, 이 경우는 앞서 살펴본 방식과 조금 다릅니다. Flutter 앱에서 play core 라이브러리 업그레이드 경고를 받았다면, pubspec.yaml 파일에서 사용 중인 라이브러리를 확인해야 합니다.

dependencies:
 flutter:
 sdk: flutter
 ...
 in_app_update: ^3.0.0

위 예시에서 앱은 in_app_update 라이브러리에 의존하고 있으며, 이 라이브러리는 앱의 새 버전이 출시되었을 때 사용자에게 알려주는 기능을 담당합니다. in_app_update의 pub.dev 체인지로그 페이지를 확인해 보면 다음을 알 수 있습니다.

버전 4.1.0에서 필요한 지원이 추가되었습니다.

따라서 pubspec.yaml 파일에서 해당 버전(최소 4.1.0) 이상을 사용하도록 업데이트해야 합니다.

dependencies:
 flutter:
 sdk: flutter
 ...
 in_app_update: ^4.1.0

Pub get을 실행하면 모든 준비가 완료됩니다.

마무리로, freeCodeCamp의 오픈 소스 커리큘럼은 4만 명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 무료로 코딩을 배우는 것도 고려해 보세요.