본문 바로가기

좌충우돌 1인 창업 일지

1인 창업 일지 #19 - 애플 앱스토어 리젝 2번, 그리고 해결 과정 (feat. ATT 권한 요청 이슈)

반응형

들어가며

제 블로그 글들을 보면, 최근 웹서비스 전체를 마이그레이션 해야하는 개발이나, 구글 개발자 계정을 조직계정에서 개인개발자로 새로 생성 후, 안드로이드 메트로놈 앱을 재출시하는 등 정신이 없었습니다. 그래서 안드로이드는 메트로놈을 진작에 출시했지만, 애플은 이제서야 손을 대게 되었네요.

 

심사 신청과 리젝의 연속

9월 2일 - 첫 심사 신청

드디어 애플 앱스토어에 메트로놈 앱 심사를 신청했습니다.

9월 3일 - 첫 번째 리젝

심사 신청 다음 날 바로 리젝을 받았습니다.

리젝 사유: Guideline 2.1 - Information Needed

The app uses the AppTrackingTransparency framework, but we are unable to locate 
the App Tracking Transparency permission request when reviewed on iPadOS 18.6.

심사팀에서는 앱이 ATT(App Tracking Transparency) 프레임워크를 사용한다고 선언했는데, 실제로 iPadOS 18.6에서 권한 요청 팝업이 나타나지 않는다고 했습니다.

 

9월 4일 - 수정 후 재심사 신청

확인해보니, ATT 권한 요청 코드가 없었고, ATT 권한 요청을 코드 자체에 직접 구현해서 재심사를 신청했습니다.

 

9월 5일 - 두 번째 리젝

똑같은 이유로 또 리젝을 받았습니다.

Hello,
The issues we previously identified still need your attention.

동일한 Guideline 2.1 위반으로, iPadOS 18.6에서 여전히 ATT 권한 요청 팝업을 찾을 수 없다는 내용이었습니다.

 

문제 해결 과정

9월 8일 - 원인 발견과 해결

두 번째 리젝 후 열심히 구글링을 하다가 해외 개발자들의 글에서 해결책을 찾았습니다. ATT 권한 요청에 1초 딜레이를 주면 해결된다는 내용이었죠.

 

실제로 제 아이패드(18.6버전)로 테스트해본 결과

  • 1초 딜레이 패치 전: ATT 요청창이 안 뜸
  • 1초 딜레이 패치 후: ATT 요청창이 정상적으로 뜸

흥미로운 점은 아이폰에서는 딜레이 없이도 진작에 잘 떴다는 것입니다. iPadOS에서만 발생하는 이슈였던 거죠.

 

현재 상황

9월 8일 오늘, 1초 딜레이를 추가한 버전으로 세 번째 심사를 요청했습니다. 현재 결과를 기다리는 중입니다.

9월 10일 새벽 드디어 앱 승인 및 출시를 완료하였습니다. 예상했던대로 ATT(딜레이) 관련 문제가 맞았네요.

 

배운 점

  1. iOS와 iPadOS의 차이: 같은 코드라도 iPhone과 iPad에서 다르게 동작할 수 있음
  2. 타이밍 이슈: 시스템 권한 요청 시 적절한 딜레이가 필요한 경우가 있음
  3. 해외 커뮤니티의 중요성: 비슷한 문제를 겪은 개발자들의 경험이 큰 도움이 됨

 

마무리

애플 앱스토어 출시 과정은 참 까다롭네요. 구글 플레이스토어와는 또 다른 세계입니다. 구글은 출시는 쉽지만, 구글 서비스들이 너무 작게 나뉘어져 있어 (페이먼츠, 플레이 등) 어떤 실수 하나로 계정 자체를 새로 생성해야 하는 등의 어려움이 있지만, 애플은 앱을 출시하기 까지 과정이 너무 많고, 앱 조차도 애플 쪽 테스터가 직접 테스트해서 통과해야 하는 것처럼 출시하기 까지는 까다롭지만, 구글 처럼 계정을 다시 만들어야 한다던지 하는 그런 불편함은 없는 것 같습니다.

 

앱이 무사히 출시되면, 전체적인 애플 앱 출시 과정을 A to Z로 정리한 포스팅을 다시 작성해보려고 합니다. 그때는 이번 경험을 포함해서 더 자세한 가이드를 만들어볼게요.

 

혹시 iPadOS에서 ATT 권한 요청이 안 뜨는 문제를 겪고 계신다면, 1초 딜레이를 시도해보세요.

반응형