Swiftui Xcode 12/iOS14小部件“@main和必须提供一个main静态功能“;错误

Swiftui Xcode 12/iOS14小部件“@main和必须提供一个main静态功能“;错误,swiftui,widget,ios14,xcode12,widgetkit,Swiftui,Widget,Ios14,Xcode12,Widgetkit,使用Xcode 12尝试为我的项目创建小部件应用程序扩展 创建新的小部件目标时,我收到以下错误: 'Widget' is annotated with @main and must provide a main static function of type () -> Void or () throws -> Void. 如果您使用的是nameWidget,那么在SwiftUI框架中已经有一个名为Widget的协议 您应该使用其他名称,但如果确实需要,可以在开始时添加模块名称,如

使用Xcode 12尝试为我的项目创建小部件应用程序扩展

创建新的小部件目标时,我收到以下错误:

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

如果您使用的是name
Widget
,那么在
SwiftUI
框架中已经有一个名为
Widget
的协议

您应该使用其他名称,但如果确实需要,可以在开始时添加模块名称,如
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.")
    }
}

对于任何希望在为iOS14项目打开Mac时修复AppDelegate问题的人,请咨询:


修复方法是将“@main”更改为“@UIApplicationMain”

我在这段代码中遇到了相同的错误:

import WidgetKit

@main
struct WidgetSale: Widget {
    let kind: String = "widgetSale"

    var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind, provider: Provider()) { entry in
            widgetSaleEntryView(entry: entry)
        }
        .configurationDisplayName("My Widget")
        .description("This is an example widget.")
    }
}
我通过在文件顶部导入swiftUI来解决此问题:

import SwiftUI

我通过以下代码得到了这个确切的错误:

@main
struct NotesApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

问题是我为SwiftUI项目命名了我的应用程序逻辑类
app

@UIApplicationMain只能用于“类”声明
,因此,要解决这一问题,需要使用Xcode 12.2和macOS 11的全新beta版本@main struct SwiftUIApp:SwiftUI.app