HoonStyle

Xcode11에서 생성한 프로젝트를 IOS12 이하 버전에서 사용하기 본문

Programming/IOS

Xcode11에서 생성한 프로젝트를 IOS12 이하 버전에서 사용하기

HoonStyle 2019. 10. 13. 17:52

 

얼마 전 Xcode11이 정식으로 업데이트되었습니다.

 

(현재 2019년 10월 13일 기준 "11.1")

새로운 Xcode에서는 SwiftUI, Swift 5.1과 iOS13.1, iPadOS 13.1, watchOS 6, macOS Catalina 10.15의 SDK가 포함되어 있습니다.

 

새로 바뀐 iOS, iPadOS에서는 새로 생긴 SceneDelegate가 AppDelegate와 함께 사용됩니다.

하지만 언제나 그렇듯 이전 버전은 사용이 불가하며 iOS, iPadOS 13이상 버전에서만 사용 가능합니다.

 

 여기서의 문제는,

Xcode11에서 새 프로젝트를 생성하고 타겟을 12 이하로 설정하는 경우입니다.

(Xcode는 기본적으로 새 프로젝트 생성 시 가장 최근 버전을 타겟으로 잡음)

타겟을 내리고 빌드를 한다면 가차 없이 AppDelegate와 SceneDelegate에서 에러를 냅니다.

(이 포스팅을 보고 있다면 역시 타겟을 내리고 빌드를 했으나 빌드조차 안되는 현상을 겪어서 라고 생각합니다.)

 

여기서는 Xcode11에서 이전과 같이 12버전 이하에서 사용할 수 있도록 작업(?)하는 방법을 소개합니다.

(이렇게 안 하게끔 수정 좀 해줬으면.....)

 

 

1. 새 프로젝트를 생성한다. (현재 타겟 13.1)

2. 원하는 타겟버전으로 변경한다. 변경 후 빌드를 하면 이렇게 iOS 13 이후부터 사용 가능하다는 오류가 나온다.

3.  SceneDelegate를 삭제한다.

 

 

4. AppDelegate의 UISceneSession Lifecycle관련 함수를 삭제한다.

 

5. AppDelegate에 기존과 같이 var window : UIWindow? 를 추가한다.(요거 중요합니다. 추가 안하시면 검은 화면만 나옵니다.)

 

5. info.plist의 Application Scene Manifest를 삭제한다.

6. 빌드를 하면 정상빌드 된 것을 볼 수 있다.