개발/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()
}
}
...
}
위 설정을 완료한 후 시뮬레이터를 실행하면 올바르게 화면이 나오는 것을 확인할 수 있습니다.