정답이란 없겠지만 구글링하면서 참고한 문서들 중 가장 도움이 되었던 글이다.
글쓴이 Gale lee 님 께서 워낙 체계적이고 따라가기 쉽게 정리해놓은터라 더 이상의 설명은 해당 글을 통해 참고하는 것이 좋을 듯 하다.
1. Certificates
2. Provisioning Profiles
3. APNS Key
4. Expo Building
5. TestFlight
워낙 까다롭다 들었기에 심사조건 충족하랴 빌드하랴 혼났다.
구글링 노동 끝 얻어낸 문서의 링크는 아래와 같다.
앱스토어 심사 등록 절차, 등록 방법 (App Store Connect)
작성자 본인이 App Store에 배포&업데이트 시 다시 보려고 쓰는거라 생각할 수 도 있지만(90%는 동의한다.) 사실 포스트 작성 이유는 여기에 있다.
몇번의 심사거절을 당한 후 구글속에서 헤엄쳐서 얻은 결과이니, 절대 다수에게도 도움이 될 것이라 확신한다.
스크린 샷 문제이다. 맥북 단축키로 어리숙하게 캡쳐한 스크린 샷은 App store 심사자들에게 가벼운 먹거리였다. Real-Size Device Screen Shot을 첨부하자. (iPhone으로 찍은 스샷을 에어드랍으로 Mac에 이동시키거나, Simulator에서 command + s 로 캡쳐하자.)
큰 위기를 맞이한 순간. (이게 뭔 소리지?) 답은 구글이 아닌 Expo 공식문서에 있었다. 상기 본인은 출시한 앱에서 유저에게 위치정보 권한을 요청하였다. 이와같이 특정 권한을 요청할때 스위프트로 출시한다면 App Store Connect 에서 보내준 방법으로 해결하면 되지만, Expo를 통해 출시 하자니 답이 없었다. (그만큼 Expo를 안 쓴다는 거지)
결론. 사용자에게 어떤 특별한 권한(ex. Localizations, Camera ..)을 요청한다면,
app.json 파일내 ios.infoPlist에 이와같이 간단한 사유를 기재하자.
"ios": {
...
"infoPlist": {
"NSLocationWhenInUseUsageDescription": "This app uses location to get weather information for user`s location."
}
...
},
본인은 expo build:ios 후 얻은 IPA파일을 transporter를 통해 App Store로 전송했다. 초기버전은 성공했다. 그러나 문제는 여기서 발생한다.
'이 전에 전송한 파일과 중복된 buildNumber를 갖고있다, 성공적으로 전송하려면 버전을 상승시켜라' 라는 말이다. 위와 동일하게 app.json 파일 내에서 해결하면 된다.
"ios": {
...
"buildNumber": "13",
...
},
저 안에 숫자를 정수로써 하나 씩 상승시켜주면 transporter은 이를 다른 버전으로 인식하여 전송해준다. 또한
"expo": {
...
"version": "2.3",
...
},
여기의 버전또한 상승시켜어야 하는데, 여기서의 버전은 transporter가 파일을 구분하는데 쓰인다. 이유는 모르겠지만 소수점을 하나 더 찍으면 오류가 발생한다. (version : 2.3.2 가 안된다는 뜻이다.)
안 된다. 애드몹사이트에서 시키는대로 코드를 붙여넣었는데 분명 작동을 안한다. (조언 부탁드립니다.)
이상으로 (내가 나중에 다시 볼)포스트를 마무리 하겠다. 도움이 되었기를 바랍니다.