OhMyPlane

자작 앱 개발 다섯 번째 이야기. 이번에는 App Store에 tvOS 버전을 올릴 때의 이야기다.

OhMyPlane

저장한 plist 파일이 사라짐

3개의 최고 득점을 별도의 plist에 저장하게 구현을 했는데, tvOS에서 테스트하다 보니 기록이 저장되지 않는 현상을 발견했다. 문제 사항으로 검색해보니 App Programming Guide for tvOS에 저장 장치 제약사항에 대한 내용이 나온다.

저장 장치 제약

tvOS 관련 문서 탐독 없이 무작정 부딪히다 보니 기본적인 것들을 놓친 것 중의 하나이다.

얼마 안 되는 용량이기에 tvOS의 경우 NSUserDefaults를 이용하여 저장하게 수정했다.

베타 App 심사 거절

TestFlight를 이용하여 외부 테스트를 하려면 베타 App 심사를 받아야 한다.

tvOS에서 잘 동작하는 것을 확인 후, 베타 App 심사를 요청했는데 거절되었다. 사유는 Siri 리모컨의 MENU 버튼에 대해서 기대한 대로 동작하지 않는다는 것이었다. tvOS에 대한 Human Interface Guidelines를 이때 처음 봤다. 흐흐흐..

Siri Remote Button Behavior

나름대로 이해한 후, 다음과 같이 구현했다.

  • Main Menu 장면에서 MENU 버튼을 누르면 Apple TV Home으로 나간다.
  • Credit, 순위 장면에서 MENU 버튼을 누르면 Main Menu 장면으로 돌아간다.
  • 게임 장면에서 MENU 버튼을 누르면 멈춘 상태가 된다. 이때 MENU 버튼을 누르면 게임이 다시 진행된다.

베타 App 심사 2번째 거절

구현을 수정 후 베타 App 심사를 요청했으나, 다시 거절되었다. 거절 사유는 똑같은 사유다.

검색해보니 비슷한 사유로 거절되었다는 글들이 보였다. 설명이 불명확하다는 이야기들도 많이 보였다. 문서에 나와 있는 “Pause/resume”, “Return to previous screen” 이 두 가지를 제외하고, “exits to main game menu”, “exits to Apple TV Home screen”만을 구현하니 심사를 통과했다는 내용이 보였다.

이에 맞춰 다음과 같이 수정했다.

  • Main Menu, Credit, 순위 장면에서 MENU 버튼을 누르면 Apple TV Home으로 나간다.
  • 게임 장면에서 MENU 버튼을 누르면 Main Menu 장면으로 즉시 나간다.

수정한 버전으로 베타 App 심사를 요청했고, 이번에는 무사히 통과했다.

tvOS 버전 출시

iOS 버전에서처럼 Simulator를 이용하여 동작 화면을 찍었다. 앱 심사에 필요한 기타 정보들을 채운 후, 베타 App 심사를 통과한 버전으로 앱 심사를 요청했다.

다행히 별다른 이슈 없이 tvOS 버전의 심사가 완료되어 tvOS 버전이 출시되었다.

Comments