iOS 앱 첫 심사 요청 후,

하루도 채 안되서 시원하게 리젝 먹었다.


리젝 메일로 iTunes Connect > Resolution Center 통해서 자세한 사항을 읽어보니..


"ipv6 환경에서 테스트 하는데 네 앱에서 에러 메시지가 뜨더라."

라고 하며 ipv6 환경에 대한 가이드 라인을 blah-blah 적어놨더라.


심지어 친절하게 스크린샷까지 첨부해줬다.


 <- 전달받은 스크린샷의 일부.



1. 애플의 함정

 - ipv6 환경이라니. iOS 9부터 ipv6 환경은 필수적으로 지원해야 한다

애플에서 공식적으로 발표한 것은 알고 있었다. 하지만 막상 이렇게 닥치니 멘붕.


 - 정말 이 오류가 재현이 되는지 확인해보고 싶었다.


 - 그래서 리젝당한 메일을 따라 ipv6 환경 셋팅 방법 문서을 읽어내려갔다.

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW16 )


- 읽다보면 wifi 없이 네트워크에 연결된, 맥이 설치된 장비가 필요한데 나는 맥북밖에 없었고

랜선을 직접적으로 꽂을 수가 없었다.


- usb 이더넷 젠더를 따로 구매해야 하나 심각하게 고민하던 중에...


- 유니티 포럼에서 나와 비슷한 상황에 처한 사람들이 많은 것을 발견.

https://forum.unity.com/threads/solved-unity-5-6-1-iaps-cannot-initialize-on-ipv6-network.477122/ )


- 위 url 에서 unity 개발자가 마지막에 남긴 코멘트를 자세히 읽어보면..

"unity는 이미 ipv6를 지원하고 있으므로 애플이 던진 모든 리젝이 ipv6와 꼭 관련이 있는 건 아니다."


- 이 코멘트에 따르면 확실히 ipv6 문제가 아니다. 애플이 던진 함정에 빠진 것이었다.

문제를 다시 생각해보니.. 내가 전달받은 문제의 스크린샷이 실마리였다.



2. 실마리

- "구매 가능한 상품이 없습니다." 이게 해결의 실마리였다.

유니티 공식 문서에 따르면 다음과 같은 문구가 있다.

https://docs.unity3d.com/kr/current/Manual/UnityIAPiOSMAS.html )

NoProductsAvailable 초기화 오류가 발생하는 경우 다음의 사항을 확인해야 합니다.

  • - iTunes Connect 제품 식별자가 Unity IAP에 제공된 제품 식별자와 정확하게 일치해야 합니다.
  • - iTunes Connect 애플리케이션에 대해 애플리케이션 내 구매가 활성화되어 있어야 합니다.
  • - 해당 상품이 iTunes Connect에서 판매 중이어야 합니다.
  • - iTunes Connect 제품을 새로 생성한 경우 구매가 가능하려면 몇 시간이 소요될 수 있습니다.
  • - 최신 iTunes Connect 개발자 약관에 동의하고 유효한 계좌 정보를 등록해야 합니다.


- iTunes Connect 에서 '앱 내 구매' 메뉴를 들어가보니 이게 웬일...

첫 심사 때 같이 심사 받았던 인앱상품으로 등록해둔 상품들이 전부 리젝 먹으면서 "개발자의 조치가 필요함"

이라는 에러 메시지를 남기고 있었다.


- 문제가 되는 상품을 클릭해보니 현지화 부분에서 에러 표시가 남겨졌지만

정확히 어떤 부분이 문제가 되는지는 알 수가 없었다. 그래서 관련 검색 시작.

( 1 : http://mmzzuu.tistory.com/67 )

( 2 : https://swifteyes.blogspot.kr/2017/04/itunes-connect.html )


- 미리 경험해 본 선배님들의 글에 따르면 표시 이름(display name)에 문제가 있다고 한다.

그래서 나도 수정했다. 어떻게 수정해야 될지 몰라서 일단 기존에 표시 이름과 설명이 동일하게 해둔 것을

설명은 그대로 두고 표시 이름만 짤막한 단어 형식으로 변경했다.


- 그 외는 건드리지 말라고 해서 인앱 상품 에러만 수정해서 다시 재심사 요청.

(display name 수정 + 혹시 몰라서 수정한 display name이 출력되는 스크린샷 재첨부)



3. 승인

- 하루가 지나고 애플의 답변이 왔다. 24시간 이내로 앱이 출시될 거라는 메일이..

남들은 3차 이상 리젝 먹고 출시하는 경우도 허다했지만 그래도 그동안 고생한 것 생각하면 무척 기뻤다..


- 이 일을 계기로 2가지의 교훈을 얻었다.

(1) 문제를 해결하려고 하기 전에 문제가 정확히 무엇인지 파악하자.

(2) 화면에 에러 메시지 출력하는 것을 절대 귀찮아 하지 말자.


- 만약 내가 에러 핸들링 제대로 안 하고(대충 로그만 박는다든가) 심사 요청했으면 

과연 어떤 리젝이 날아왔을지.. 실마리 못 찾고 하마터면 ipv6 연결해서 테스트 해보고 좌절하고 

온갖 쓴맛을 다 봤을지도.. 생각만 해도 소름..


by kelicia 2018. 2. 19. 01:41