티스토리 뷰

이 내용은

iOS Target 13 이상

Xcode 11 이상

해당되는 내용입니다.

 

안녕하세요 :]

 

최근에 iOS 13도 올리고

iOS 13을 올리면 또 Xcode를 11로 올려야 하더라고요.

그래서 Xcode도 올렸습니다.

 

그런데?!

프로젝트를 생성하니까 완전 처음 보는

"SceneDelegate"가 생겨있고

AppDelegate에 window가 안 보이네요???

 

WWDC19에서 이야기했던 게

나온 거겠죠.

 

이게 사실

iPad의 Multyple Windows 때문에

나온 개념인 거 같아요.

 

 

중요한 건,

저는 Main Storyboard를 사용하지 않고 코드를 짜거든요..

그래서 항상 삭제를 하는데!

이게 삭제를 하고 보니까

rootViewController를 어디 작성해야 할지 모르겠더라고요.

 

그래서!

한 번 정리해 봤습니다.

 

먼저, 늘 하던 데로

"Main.storyboard"

삭제합시다!!!

빠잇~

 

 

그리고 또!

늘 하던 데로

"Main Interface" 값을 지워주세요.

 

 

저기 "Main"이라고 적힌 거

지워주세요~

 

 

이렇게!!

 

그러고 나서

SceneDelegate 코드를 수정할 거예요.

 

수정하기 전에 간단하게 알아보자면

iOS 13부터는

AppDelegate에서는 Process LifeCycle만!!

SceneDelegate에서는 UI LifeCycle만!!

관리하게 될 거예요.

 

이제 진짜 코드를 수정해볼게요.

 

 

기존에 있던 코드에

guard let _ = (scene as? UIWindowScene) else { return }

변수 명을 입력해주시고요.

 

window의 frame을 지정해주세요.

기존에는 UIScreen.main.bounds로 frame을 잡아줬는데

여기서는 windowScene의 coordinateSpace의 bounds로 frame을 잡아줍니다.

그리고 window의 windowScene을 설정해 주시고요.

나머지는 똑같습니다.

 

그리고, AppDelegate는 수정하지 않을게요.

 

마지막으로 info.plist를 수정할게요.

info.plist로 가보면 평소 못 보던 항목이 있을 거예요.

 

 

"Application Scene Manifest"가 있는데요.

이 항목을 타고 들어가 보면 Key 중에 Storyboard Name이 있어요.

삭제해주세요.

 

 

이렇게!! ㅎㅎ

그러면 평소 Main Storyboard를 삭제하고 하셨던 분들!

에러 없이 빌드가 잘 되는 것을 볼 수 있습니다!! ㅎㅎ

 

 

 

댓글