Archive시 생기는 UIInterfaceOrientation 오류 해결

Photo by Zan on Unsplash

Archive시 생기는 UIInterfaceOrientation 오류 해결

앱 아카이브 Asset validation failed - iPad multitasking 오류

·

2 min read

앱 스토어 커넥트도 처음 해봤고 두근거리는 마음으로 여러 글들을 따라 앱스토러에 등록하기 위해 준비하고 있었는데 역시나 문제가 생겼고 해결하는데 삽질 좀 했다.


결론: 그냥 프로젝트 설정 파일에서 아이패드 멀티태스킹을 안할 것이면 General > Development Info에서 Requires Full Screen을 켜주고 멀티태스킹 할거면 iPad Orientation 체크표시를 다 켜주면 된다.


문제의 시작. Archive에서 모든 절차를 완료하고나서 앱 스토어 커넥트로 전송하는 로딩 인디케이터가 돌아가나 싶더니 다음과 같은 오류를 띄웠다.

Asset validation failed

Invalid bundle. The “UIInterfaceOrientationPortrait” orientations were provided for the UISupportedInterfaceOrientations Info.plist key in the {Project Bundle Identifier} bundle, but you need to include all of the “UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight” orientations to support iPad multitasking. For details, visit: https://developer.apple.com/documentation/bundleresources/information_property_list/uisupportedinterfaceorientations. (ID: {Error ID})

대충 번역하면 iPad multitasking을 지원하려면 “UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight”를 전부 지원해야 한다는 뜻이다.

그런데 나는 Portrait와 PortraitUpsideDown만 이용할 생각이었다. 일단 오류메시지대로 info.plist에 키를 넣으려고 했으나... info.plist에 Key에 지원 url의 UISupportedInterfaceOrientations를 넣으니 알아서 다른 키로 바뀌는 것이다. 그래서 좀 알아보니 블로그 글 info.plist Key 목록과 사용.처럼 각각의 키에 해당하는 이름이 따로 있어서 그 값으로 바뀌는 듯 했다.

그래서 나는 사용할 Portrait와 PortraitUpsideDown을 넣고 아카이브하니 또 오류가 발생했다. 같은 내용이었다. 그도 그럴것이 멀티태스킹에 대한 내용을 안하겠다는 표시를 안해주었기 때문이다. 그 내용을 어디서 설정하는지에 대해 삽질 좀 했다. 방법은 허무하게도 설정 파일에서 Requires full screen을 찾아 체크 표시 해주면 된다.

그런데 웃긴 것이 내가 위의 Portrait 설정을 한 것들이 아카이브 돌리고 나니 info.plist에서 사라져있었다. 설정 파일에서 확인해보니 설정 파일은 잘 변경되어있었다. 그래서 한 번 실험해봤는데 info.plist에서 안바꾸고 설정 파일에서 바꿔줘도 되었다. 그래서 General > Development Info에서 아래에 보이는 iPad Orientation에서 그림과 같이 네 개를 다 사용하도록 하면 된다.

나는 현재 버전에서는 전부 iPhone과 iPad 전부 Portrait와 Upside Down만 하고 Requires full screen을 했다. 그러면 이제 멀티태스킹을 사용하지 않겠다는 의미가 되기 때문에 iPad Orientation 오류가 뜨지 않고 아카이브가 된다. 다음 버전에서는 멀티태스킹을 허용해볼 생각이라서 실험해봤다. iPhone에서는 Portrait와 UpsideDown만 했고 iPad에서는 네 개를 전부 체크, Requires full screen을 끄고 아카이브 시도한 결과 앱 스토어 커넥트에 잘 올라갔다.

업로드 완료 모습은 아래 사진과 같다. 오류가 생기면 'X' 표시와 함께 위에 있던 오류 메시지가 뜬다. 처음 하는데도 오류가 나서 좀 당황했는데 무사히 해결해서 다행이다.