반응형

안드로이드에서 targetSdkVersion 34로 설정할 때는 몇 가지 주요 변경 사항과 주의 사항이 있습니다. 주요 사항은 다음과 같다.

 

1. 권한 처리 강화

  • 미디어 파일 권한: Android 14에서는 사진, 동영상, 오디오 파일에 대한 권한 요청이 분리되었습니다. READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO와 같은 구체적인 권한을 사용해야 합니다.
  • 알림 권한: Android 13(API 33)부터 알림 사용을 위한 권한(POST_NOTIFICATIONS)이 필수적입니다. 사용자가 명시적으로 알림을 허용해야 앱이 알림을 보낼 수 있습니다.
    • 예시:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS), 100)
}

 

2. 백그라운드 작업 제한 강화

  • 정책 변경: Android 14는 백그라운드 작업에 대한 제약을 더 강화했습니다. 배터리 소모를 줄이기 위해 백그라운드에서 실행되는 작업에 대한 제한이 있으며, 특히 앱이 백그라운드에서 실행 중일 때 작업 스케줄링이 더 어려워졌습니다. 이를 해결하기 위해 JobScheduler 또는 WorkManager를 사용하는 것이 권장됩니다.

 

3. 기본 보안 정책 강화

  • SAF(Storage Access Framework) 적용 강화: 외부 저장소 접근이 더 제한적이며, 앱이 명시적으로 저장소 접근을 요청하지 않으면 사용자가 이를 거부할 수 있습니다. Scoped Storage 적용을 준비해야 하며, 파일 관리는 앱 전용 저장소나 사용자 상호작용을 통해서만 접근해야 합니다.

 

4. 암호화 및 보안

  • 암호화된 네트워크 통신: 명시적 암호화가 더 중요해졌습니다. Android 14는 더 엄격한 네트워크 보안 구성을 요구하며, 특히 비암호화된 HTTP 요청을 차단하거나 이를 명시적으로 허용하지 않으면 기본적으로 차단됩니다. 앱의 network_security_config.xml에서 설정을 확인하고 HTTPS를 권장합니다.

 

5. 개발자 옵션 사용 제한

  • Android 14에서는 디버그 앱이 아닌 경우, 앱 설치 후 개발자 옵션을 통해 설정된 일부 기능이 자동으로 차단될 수 있습니다. 따라서 개발자 전용 빌드 배포 빌드에서 설정 차이를 명확히 하고, 배포 빌드에서는 사용자 경험에 영향을 주지 않도록 주의해야 합니다.

 

6. 백그라운드 위치 접근 제한

  • 위치 서비스 관련 변경 사항으로, 백그라운드에서 위치 정보를 사용하는 경우에 대해 더 엄격한 권한 요구가 추가되었습니다. Android 10(API 29)부터 백그라운드 위치 권한(ACCESS_BACKGROUND_LOCATION)이 따로 분리되었으며, 이를 명시적으로 요청해야 합니다. 이제 위치 권한을 필요로 하는 경우, Foreground 권한 Background 권한을 각각 별도로 요청해야 합니다.

 

7. 동적 코드 로딩 제한

  • Android 14에서는 동적 코드 로딩(dynamic code loading)과 관련된 보안 정책이 더 엄격해졌습니다. APK 내에서 동적으로 코드를 로드하는 방식(예: 외부에서 다운받은 Dex 파일 로딩)을 사용한다면, 보안상의 이유로 Google Play 정책 위반이 될 수 있으므로 주의해야 합니다.

 

8. Non-SDK 인터페이스 사용 제한

  • Android 14에서는 Non-SDK 인터페이스(비공개 API) 사용을 제한하는 정책이 강화되었습니다. 이제 비공개 API에 접근하는 것은 더욱 어렵고, 이에 대한 경고나 오류가 발생할 수 있으므로, 공식 SDK를 사용하는지 점검해야 합니다.

 

 

반응형
블로그 이미지

SKY STORY

,