생계유지형 개발자/Mobile

[ios] iOS 13 미만인 경우, SceneDelegate로 인해 실행 안될 때

이 가을 2020. 7. 29. 12:53

Deployment Target이 iOS 13 미만인 상황에서는?

Deployment Target이 iOS 13 미만인 상황에서도 UIScene과 UISceneDelegate를 사용할 수 있을까요? 만약 앱이 iOS 13 미만의 버전도 지원해야 한다면 어떻게 해야할까요?

iOS 12 이하는 하나의 앱에 하나의 window를 가지고 있기 때문에(즉, multi window를 사용하지 않기 때문에) iOS 13에서 추가된 부분을 삭제하고 이전 버전(~iOS12)과 설정을 똑같이 바꿔주면 이전 방식대로과 동일하게 할 수 있습니다.
방법은 Xcode를 새로 열고

  1. iOS13에서 새로 생긴 SceneDelegate.swift 파일 삭제
  2. iOS13에서 AppDelegate에 추가된 UISceneSession과 관련된 두 메소드 삭제
  3. iOS13에서 SceneDelegate로 옮겨진 window 프로퍼티를 AppDelegate로 다시 옮기기
var window: UIWindow?
  1. info.plist에서 Scene과 관련된 Manifest인 Application Scene Manifest 삭제

 

참고

https://velog.io/@dev-lena/iOS-AppDelegate%EC%99%80-SceneDelegate