개요
새로운 앱을 업로드 하는데 API level 34 이상이어야 했습니다. API level 이 낮은 장비에서 잘 동작해서 34 로 변경 후 구글플레이에 업로드 했습니다. 그런데 앱이 거부되었습니다.
거부 이유
메일의 제목은 조치 필요: 앱이 Google Play 정책을 준수하지 않음 이었습니다. 세부 내용을 확인해 보니 다음과 같았습니다.
발견된 문제: 손상된 기능 정책 위반
비정상 기능 정책을 준수하지 않는 콘텐츠가 포함되어 있습니다.
- 앱이 로드되지만 응답하지 않음
문제 파악
이미지 까지 첨부되어 있어 확인해 보았습니다. 내용은 Storage 에 쓰기 권한을 요청하는 화면이었습니다.
단순히 SETTINGS 를 눌러 권한을 허용하면 될 것 같은데 뭔가 좀 이상했습니다.
API level 34 를 지원하는 실제 테스트 기기가 없어서 에뮬레이터를 이용해서 테스트 해 보았습니다. 앱을 설치하고 실행하니 위와 같은 화면이 나타났습니다. SETTINGS 를 터치하니 앱의 권한 관리 화면으로 이동 되었습니다. 그런데 권한을 추가할 수 없고 요청된 권한 사항이 없다는 글자만 나타나고 비활성화 되어 있는 상태였습니다.
앱이 위의 화면에서 설정 화면으로 이동만 되고 더 이상 할 수 있는 것이 없어서 정상적으로 실행되지 않는다는 것을 확인했습니다.
문제 해결
이전 API level 에서는 처음에 나타나는 권한 부여만 선택해 주면 문제 없이 동작했습니다. 문제는 API level 33 이상에서 나타나는 것으로 생각되었습니다. 이리저리 찾아보니 AndroidManifest.xml 파일에 권한 관련 설정 부분에 추가 내용이 필요했습니다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
android:maxSdkVersion=”32″ 를 위와 같이 추가해서 다시 업로드 하면 문제 없이 앱이 등록되었습니다.