현재 10월 초 기준으로 iOS 15.7 기기들에서 아래와 같은 로그의 크래시가 발생하는 중이다.
[UIScene _invalidate]
[UIWindowScene _invalidate]
[UIApplication workspace:willDestoryScene:withTransitionContext:comkpletion:]
이런 오류가 포함되어 있다.
이 이슈에 대해서 아래 링크에서 논의 중이다.
아래 코드를 통해서 비슷한 현상을 재현을 할 수 있는데
let storeKitViewController = SKStoreProductViewController()
storeKitViewController.loadProduct(withParameters: [
SKStoreProductParameterITunesItemIdentifier: NSNumber(integerLiteral: 364709193)
])
present(storeKitViewController, animated: true)
저 코드로 앱스토어 화면을 띄운 후에 그냥 앱의 백그라운드 상태를 종료해버리면
-[SKStoreProductViewController sceneDisconnected:]:
이 에러가 발생하는 것을 재현할 수 있다.
아마도 저 에러코드의 원인은 애드몹에서 발생하는 것으로 추측되고
유저가 광고를 클릭 한 후에 앱을 종료해버리거나 또는 백그라운드 상에서 죽으면 저 오류가 발생하는게 아닐까 싶다.
어떻게 그냥 다른 앱을 사용하다 백그라운드 상에서 죽으면 저 오류가 문제가 아닐 수 있고
역시 유저가 백그라운드 상에서 죽인거라고 해도 별다른 문제가 아닐 수도 있겠다.
아래 코드를 추가하면 iOS 15.7 에서 저 오류가 발생하지 않도록 할 수도 있다.
@available(iOS, introduced: 15.7, obsoleted: 16.0)
@objc extension SKStoreProductViewController {
func sceneDisconnected(_ arg: AnyObject) {}
func appWillTerminate() {}
}
iOS 16.0 기기에 테스트에서는 앱이 죽지 않았다. 개선된 것으로 확인할 수 있었다.