iOS/오류 해결

[iOS] ERROR ITMS-90339: UIApplicationExitsOnSuspend Error 해결 방법

안경 쓴 귀니 2021. 4. 4. 02:24
반응형

App Store 배포 시, 아래와 같은 오류가 발생했다.

 

 오류 

App Store Connect Operation Error

ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'UIApplicationExitsOnSuspend' in bundle App [App.app]"

 

 

오류 내용: Info.plist에 포함된 UIApplicationExitsOnSuspend 키가 deprecated 되어 사용 불가

 

참고 URL: developer.apple.com/documentation/

 

 

Xcode에서 info.plist 파일을 보면 아래와 같은 키를 확인할 수 있다.

 

  • Info.plist - Property List에서 보면 Key가 Application does not run in background로 표시됨

 

  • Info.plist - Source Code에서 보면 Key가 UIApplicationExitsOnSuspend로 표시됨

 

※참고: Property List와 Source Code로 변경하는 방법은 아래와 같음

Info.plist 오른쪽 마우스 클릭 > Open As > 선택

 

 해결 방법 

일반적으로 해당 Key 값을 YES(true)로 사용했을 것이다.

YES로 설정하면, 앱이 백그라운드 상태로 갔을 때 앱을 종료하게 되고,

앱을 실행하거나 앱 목록에서 실행하여도 무조건 앱이 처음부터 실행된다.

 

deprecated 된 API는 삭제하고, 대체할 수 있는 기능을 추가

  1. Info.plist에서 위 Key 삭제
    - Info.plist - Property List에서는 해당 Key를 선택 후 backspace 키 클릭
    - info.plist - Source Code에서는 <key>~ <true/>까지 삭제

  2. 해당 기능을 대체하는 기능
    앱이 포그라운드 상태가 되기 직전에, 화면을 첫 화면으로 세팅해주는 방법이다.
    AppDelegate 또는 SceneDelegate에 있는 applicationWillEnterForegroud에서 첫 화면을 다시 설정해준다.
    상황에 맞춰 스토리보드 또는 xib로 사용 가능하다.
    ※ 아래 예제는 Main 스토리보드를 사용하는 경우
- (void)applicationWillEnterForeground:(UIApplication *)application {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *vc = [storyboard instantiateInitialViewController];
    [UIApplication sharedApplication].delegate.window.rootViewController = vc;
}
반응형