Jerry's Bakery

[iOS] SwiftUI 최소버전 iOS 13으로 설정 본문

개발/iOS

[iOS] SwiftUI 최소버전 iOS 13으로 설정

_Jerry 2022. 5. 26. 17:49

안녕하세요 Jerry입니다.

 

SwiftUI로 개발할 때 최소 버전을 iOS13으로 설정하는 법에 대해 알아보겠습니다.

 

iOS를 공부하면서 정리하는 것이기 때문에 미흡한 점이 있을 수 있습니다. 부족한 점에 대해 댓글 남겨주시면 감사하겠습니다.

 

제가 설정하는 방법은 여러 방법 중 한 가지 방법임을 알려드립니다.

문제

프로젝트를 생성할 때 Interface를 SwiftUI로 설정한 후 앱 최소 버전을 iOS 13으로 낮추게 되면 ProjectApp 파일에서 오류가 생기게 됩니다.

ProjectApp 구조체는 App 프로토콜을 채택해야 하고, App 프로토콜은 iOS 14 이후부터 지원하기 때문에 오류를 발생시키고 있습니다.

해결 방법

프로젝트를 생성할 때 아래와 같이 Interface와 Language를 설정합니다.

그 후 배포 최소 버전을 iOS 13.0으로 설정합니다.

SwiftUI 파일을 새롭게 추가합니다.

파일명은 ContentView.Swift로 설정하고 아래와 같이 코드를 작성합니다.

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

SceneDelegate의 willConnectTo 함수를 아래와 같이 수정합니다.

UIHostingController를 사용하기 위해서 SwiftUI를 import 해주어야 합니다.

import SwiftUI

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    ...
    
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

        let contentView = ContentView()

        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }
    }
    
    ...
    
}

위 설정을 완료한 후 시뮬레이터를 실행하면 올바르게 화면이 나오는 것을 확인할 수 있습니다.

Comments