Google Play 게시하기

The Dice·2024년 2월 22일
post-thumbnail

개요

회사에서 갑자기 android 앱 설치하기 불편하다고 난리치는 사람이 늘었다.
확인 해보니 Google Protect가 설치 차단하고 있었다.
Protect 이의제기를 했지만 차단 해제는 커녕 회신 하나 없다. (원래 회신 없다고 한다)
https://support.google.com/googleplay/android-developer/answer/2992033?hl=en

그래서 결국 Google Play 업로드하기로 결심했다.
(누가 시켜서 하는거 아니다. 스스로 하는거다.)

Google Play

스토어 심사 측면에서 App Store는 쉬워지고 Google Play는 점점 어려워지고 있다고 한다.
특히 '민감한 권한(Sensitive Permission)'을 사용할 때는!!

막상 시작하려고 보니 어떻게 뭘 바꿔야 할지는 도저히 감이 잡히지 않았다.
그래, '민감한 권한'을 쓴다, 어쨋든 쓰라고 만들어 둔거 잖아?
그럼 스토어 심사를 통과할 방법도 어떻게든 있다는 뜻일 거다.

맨땅에 헤딩하는 심정으로 아무것도 수정하지 않고 그대로 심사를 요청 해본다.

앱 서명

제일 처음 버전 업로드하려고 앱 서명을 등록하란다.
나는 원스토어에서 이미 사용하던 서명 키가 있기 때문에 기존 앱 서명 키를 선택했다.

비공개 키는 Android Studio > Genrate Signed APK/AAB 선택하면 CreateNew 버튼으로 생성

누르고 나면 Macbook 기준 바탕화면에 pepk 파일이 생성되어 있다.
그거 업로드하면 된다.

버전 등록

영문에선 Release인데 한국어는 버전이라고 표기된다. 헷갈린다. 그냥 Release라고 표기하지.
좌측 메뉴에서 App Bundle 탐색기를 선택하고 '새 버전 업로드' 버튼 클릭한다.

버전을 업로드하면 아래와 같이 App Bundle 탐색기에 표시된다.

여기서 활성, 비활성화 여부는 트랙 등록 여부에 따라 바뀐다. 신경 안써도 된다.

트랙 생성

트랙은 출시 전 테스트를 목적으로 한 일련의 사이클을 의미한다.
제품에 따라 매우 많은 트랙이 존재할 수 있다. (개발자가 많다면)
나는 혼자니까 유아독존 트랙을 만들 수 있다. (만세)

트랙은 한번 만들어지면 삭제를 못하는거 같다..
이력을 남겨주고 싶은 Google의 세심한 배려를 이해 못하는건 내가 속좁이라서 그렇겠지?

좌측 메뉴에서 비공개 테스트를 선택하고 '트랙 만들기'를 클릭한다.
잡다꾸리한 정보를 다 입력해주고 '새 버전 만들기'를 클릭한다.
'라이브러리에서 추가'를 누르면 아까 App Bundle 탐색기에서 업로드한 버전이 검색된다.

선택하고 저장하면 게시 개요로 이동할 거냐고 묻는데 가서 변경사항을 Google에 제출하면 심사가 시작된다.
응답은 빠르면 하루, 최대 3일정도 걸렸던거 같다.

지적사항 반영하기

응답이 왔는데 뭐라고 해야 하나...
내 앱에 딱 맞는 응답이 아니고 기계적으로 정해진 응답이 온다.

가슴이 설레는 Rejected 응답.. 면접도 그렇지만 떨어지면 기분 나쁘다.

APK HAS A PROMINENT DISCLOSURE BUT THE DISCLOSURE IS NOT ADEQUATE

직역하면 APK가 명시적 공개가 있지만 공개가 적절하지 않습니다.
이 뭔 개소리지 싶었는데 아래 내용을 보니 휴대전화 번호를 서버로 전송하고 있다고 하네요.
확인해보니 그런 부분이 있었고 제거하고 새로운 버전을 제출하고 다시 심사를 기다립니다...
https://support.google.com/googleplay/android-developer/answer/10144311?visit_id=638441614601414392-1577947304&rd=1

Missing user prompt for permissions access

권한 요청 시 사용자 프롬프트가 누락되었습니다.
다 넣는다고 넣었는데 몇몇 권한 요청 시 설명 프롬프트가 누락 되었던 모양이다.
어떤 권한을 요청하든 사용자가 명확하게 인지할 수 있게 설명 메시지가 있어야 한다.
https://developer.android.com/training/permissions/requesting?hl=ko

Unable to verify core functionality of app

핵심 기능을 확인할 수 없습니다.
이건 또 뭔 개소리인가 싶었는데 '민감한 권한' 관련된 내용이었다.
RECEIVE_SMS, READ_CALL_LOG 같은 민감한 권한을 사용함에도 이를 핵심 기능으로 명시하지 않았다는 뜻이다.

당시 나는 이해가 안되어 지푸라기라도 짚는 심정으로 권한 요구 시 더 상세하게 프롬프트를 띄워줬다.
또한 RECEIVE_SMS 권한은 사용하지도 않는데 AndroidManifest.xml에 있길래 삭제해줬다.
그래도 Google의 응답은 일관되게 Reject 였다.

아래 가이드를 보면 READ_CALL_LOG 권한은 기본 어시스턴트 핸들러로 등록된 경우만 가능하다고 한다.
그럼 난 안되는건가...
https://support.google.com/googleplay/android-developer/answer/10208820?visit_id=638320367743206642-844692561&rd=1#intended&zippy=%2Cpermitted-uses-of-the-sms-and-call-log-permissions%2Csms-%EB%B0%8F-%ED%86%B5%ED%99%94-%EA%B8%B0%EB%A1%9D-%EA%B6%8C%ED%95%9C%EC%9D%98-%ED%97%88%EC%9A%A9%EB%90%9C-%EC%9A%A9%EB%8F%84

다행히 예외항목에 '발신번호 표시'가 있다.
여기서 눈 여겨 봐야 할 부분은 '현재 핵심 기능을 제공할 수 있는 다른 방법이 없는 경우'이다.
나는 여기에 해당된다고 굳게 믿고 다시 심사를 요청했다.

그래도 Google의 응답은 일관되게 Reject 였다.
역시 믿음만으론 안되는건가... 에라 모르겠다.

이번에 안되면 그냥 접자는 생각으로 기본 스토어 등록정보에 발신자 표시로 도배해버렸다.
심지어 앱 이름도 '*** - 발신자 표시 서비스'로 변경했다.
사실 우리 앱은 발신자 표시가 핵심 기능이라고 동네방네 떠들고 다니기로 한거다.

드디어 통과!!

아래 게시글이 많은 도움이 되었다.
https://post.naver.com/viewer/postView.naver?volumeNo=26998941&memberNo=39874958

얘네들은 핵심 기능을 별도 분리하여 새로운 앱을 개발한 반면
어차피 핵심 기능은 정하기 나름이니, 나는 핵심 기능 앱 이름&설명을 바꿨다.
엄격한 코딩 세상에서 이 무슨 말장난이란 말이가 ㅠ

Google의 참뜻

어쩌면 Google의 의도는 처음부터 앱을 수정하란게 아니고
등록정보에 핵심 기능을 명확하게 명시하란게 아닐까?
그래야 사용자들이 '이 앱은 통화기록 권한을 요청하겠구만!'라고 짐작할 수 있도록.

앱 게시하기

비공개 트랙에서 버전이 심사 통과 되었으니 해당 버전을 '프로덕션' 옮겨서 심사 받아야 한다.
이미 통과한 버전이니 별 다른 이슈는 없을거다.
참고로 첫 업로드는 심사 기간이 좀 오래 걸리는 거 같다. (현재 4일째)
이후 업데이트는 2,3시간이면 승인 된다고 한다.

여담으로 회사 앱 이름을 내 맘대로 '*** - 임직원 발신자 표시 서비스'로 바꿨더니
파트장이 그렇게 안하면 안되냐고 물어본다.

그래서 나도 Google에 물어보겠다고 했다. (추가: 안된단다)

끝.

profile
건설회사 전산실 근무

0개의 댓글