【问题标题】:New project fails using SwiftUI, XCode 12 and Catalina使用 SwiftUI、XCode 12 和 Catalina 的新项目失败
【发布时间】:2021-01-22 09:41:57
【问题描述】:

我正在尝试创建一个全新的 XCode 项目,我可以在模拟器上运行它,但在画布上显示:Cannot preview in this file - active scheme does not build this file 如果最重要的是我开始添加 macOS 支持,它会说:

'appName' is annotated with @main and must provide a main static function of type () -> Void or () throws -> Void.它还说:

Cannot find type 'App' in scope

Cannot find type 'Scene' in scope

关于 mac 支持,我正在阅读有一个 workaround,即使我尝试过并且错误仍然存​​在。

关于主动方案,我读过this,但没有帮助。我的意思是......新项目中只有一个方案,它是自动选择的

我假设一个简单的 hello world 项目可以工作,这是怎么回事?

【问题讨论】:

    标签: swift xcode swiftui macos-catalina xcode12


    【解决方案1】:

    macOS 上的 SwiftUI 2.0Big-Sur macOS 11.0

    开始可用
    @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
    public protocol App {
                        ^^^^^^^^^^^^
    

    【讨论】:

    • 也许我应该编辑标题,我有 Catalina,我假设它是 SwiftUI 2.0,问题是一旦我创建一个新项目它就会失败。我确实有 XCode 12。我更新了 XCode 和所有内容,我不明白为什么新项目会出现此错误
    • 是的,Xcode 12 允许使用 SwiftUI 2.0 创建新的 macOS 项目,但您不能将其作为目标并在 Catalina 上运行。对于 Catalina,您应该使用 SwiftUI UIKit 生命周期创建新项目并仅使用 SwiftUI 1.0 API。
    • 我明白了,这可能就是原因。因此,如果我现在在 Catalina 上创建 SwiftUI App 生命周期,我是否能够在 Big Sur 发布时运行 macOS 支持?这是一个愚蠢的问题,但我想确定一下。
    • 是的,它会,但如果你要为 macOS 11 开发,最好在 macOS 11 上开发。))
    • 这里是新的 Swift/Xcode 编码器,开始很粗糙:D 我明白你的意思@Asperi,但不知道如何实现 Catalina/SwiftUI 1.0 开始。有什么帮助吗?
    【解决方案2】:

    关于 macOS 支持是 Asperi 提到的,Catalina 在 XCode 12 上支持 mac 存在问题。

    至于新项目失败,我发现如果我按Cmd + Opt + P,它会在Canvas上构建它。我曾尝试在画布上单击“再试一次”,我认为这是相同的并且没有工作。您不需要删除文件并创建一个新文件,也不需要选择任何目标,因为它是一个新项目,并且会自动选择目标。 此外,@Main 无需更改即可在 iOS 和 iPad 上运行,macOS 支持只需等到 Big Sur 发布即可。

    【讨论】:

      猜你喜欢
      • 2020-02-12
      • 1970-01-01
      • 2021-08-23
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      相关资源
      最近更新 更多