如何将 Watch 应用迁移到 SwiftUI 生命周期

fph*_*elp 10 lifecycle swift apple-watch watchkit swiftui

我有一个带有 Apple Watch 扩展的 iOS 应用程序。我下载了 Xcode 14 并收到警告:

WatchKit 故事板在 watchOS 7.0 及更高版本中已弃用。请迁移到 SwiftUI 和 SwiftUI 生命周期。

我完全支持这次迁移,事实上,我的初始托管控制器返回了 SwiftUI 视图。但我在任何地方都找不到如何从 WatchKit 实际迁移到 SwiftUI 生命周期。有谁知道如何做到这一点?

我完全可以删除我的 WatchKit 故事板,因为它们除了指向初始控制器之外没有使用。这是我的初始控制器代码(如果有帮助的话):

import WatchKit
import Foundation
import SwiftUI

class HostingController: WKHostingController<AnyView> {
    override var body: AnyView {
        return AnyView(WatchHomeUI())
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rge 3

您可以简单地替换以下文件:

  • 接口.strings
  • 界面.故事板
  • HostingerController.swift

经过

  • YourWatchAppTargetName.swift 内容如下:
import SwiftUI

@main
struct YourWatchAppTargetName: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

@main并且不要忘记从您的文件中删除ExtensionDelegate.swift