Xcode 12 / iOS14 小部件“@main 并且必须提供主静态函数”错误

Vla*_*lad 12 widget widgetkit swiftui ios14 xcode12

使用 Xcode 12 尝试为我的项目创建 Widget 应用程序扩展。

创建新的 Widget 目标后,我收到以下错误:

'Widget' is annotated with @main and must provide a main static function of type () -> Void or () throws -> Void.
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Bil*_*lal 23

您正在使用的名字Widget,已经有一个叫做协议WidgetSwiftUI框架。

您应该使用其他名称,但如果您真的想要,请在开始时添加模块名称,例如 SwiftUI.Widget

@main
struct Widget: SwiftUI.Widget {
    private let kind: String = "Widget"

    public var body: some WidgetConfiguration {
        IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider(), placeholder: PlaceholderView()) { entry in
            WidgetEntryView(entry: entry)
        }
        .configurationDisplayName("My Widget")
        .description("This is an example widget.")
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 7

对于任何希望在为 iOS14 项目打开 Mac 时修复 AppDelegate 问题的人 - 请咨询:iOS Xcode 12.0 Swift 5 'AppDelegate' 用 @main 注释并且必须提供类型为 () -> Void 或 () 的主要静态函数投掷 -> 无效

解决方法是将“@main”更改为“@UIApplicationMain”