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

Xcode 12 / iOS14 Widget "@main and must provide a main static function" error

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

创建新的 Widget 目标时出现以下错误:

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

您正在使用名称 WidgetSwiftUI 框架中已经有一个名为 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()
        }
    }
}

问题是我将我的应用逻辑命名为 class App.