SwiftUI 无法预览此文件 - 发生意外错误

问题描述 投票:0回答:3

仅针对 iOS 的 UIKit Xcode 项目,它有 3 个用于不同构建配置的目标。

当我添加 swiftui 文件时,它可以正常构建并运行,但我看不到我得到的最简单的预览

Cannot preview this file - un expected error occurred

准确的诊断是

HumanReadableSwiftError

ProviderError: ProviderError: noPreviewInfos(runDestination: Simulator - iOS 15.2 | iphonesimulator | x86_64 | iPhone 13 Pro Max | Apple Watch Series 6 - 44mm, thunkConfiguration: <IDEBuildOperationConfiguration buildCommand: 8, buildParameters: <IDEBuildParameters:0x7fe4bffe2f40:action=build:command=<IDEConcretePrimitiveSchemeCommand:0x7fe4bb382500:Run>:config=Release:dest=iPhone 13 Pro Max:arch=x86_64:workspaceArena=<IDEWorkspaceArenaSnapshot: 0x7fe4bbbbf2b0>:
overridingProperties=(
{ // Preview overrides (immutable)
   DSTROOT = 【𝗟𝗶𝘁𝗲𝗿𝗮𝗹𝗦𝘁𝗿𝗶𝗻𝗴:/Users/x/Library/Developer/Xcode/DerivedData/MayApp-ezbgeibumcswldddlegmcbpnukij/Build/Intermediates.noindex/Previews/MayApp/ReleaseProducts】
   ENABLE_PREVIEWS = 【YES】
   OBJROOT = 【𝗟𝗶𝘁𝗲𝗿𝗮𝗹𝗦𝘁𝗿𝗶𝗻𝗴:/Users/x/Library/Developer/Xcode/DerivedData/MayApp-ezbgeibumcswldddlegmcbpnukij/Build/Intermediates.noindex/Previews/MayApp/Intermediates.noindex】
   SYMROOT = 【𝗟𝗶𝘁𝗲𝗿𝗮𝗹𝗦𝘁𝗿𝗶𝗻𝗴:/Users/x/Library/Developer/Xcode/DerivedData/MayApp-ezbgeibumcswldddlegmcbpnukij/Build/Intermediates.noindex/Previews/MayApp/Products】
},
):
collectBuildTimeStatistics=NO
collectTimelineMetrics=NO>, executionEnvironment: Optional(<IDEExecutionEnvironment: 0x7fe52c865050>), singleFileToBuild: nil, buildLog: nil, parallelizeBuildables: true, dontActuallyRunCommands: false, buildImplicitDependencies: true, skipDependencies: false, buildables: Optional([<Xcode3TargetProduct:0x7fe549f34fa0:MayApp.app blueprint:<Xcode3Target:0x7fe4bb385f20:MayApp>>]), subsetOfBuildables: nil, buildDescriptionID: nil, scheme: Optional(<IDEScheme:0x7fe4baea1490:'MayApp'>), schemeTask: 0, clientInfo: nil>, blueprintName: MayApp Staging, sourceFilePath: /Users/x/Git/MayApp/options/MayApp_ios/MayApp/Application/Exploration/ProfileSettings/ProfileSettingsView.swift, thunkVariantSuffix: __XCPREVIEW_THUNKSUFFIX__)

我尝试过的事情: 我将 macos 和 xcode 更新到最新版本(Xcode 版本 13.2.1)

  • SwiftUI 文件已添加到所有 3 个目标中
  • 删除模拟器
  • 删除衍生数据
  • 多次重启mac和xcode
  • 尝试将“构建活动架构”设置为“是”和“否”
  • 排除架构arm64
  • sudo xcodebuild -license accept
  • 也尝试为所有目标设置
    ENABLE_PREVIEWS = YES

没有任何效果

奇怪的是,当我添加 SwiftUI 文件而不运行测试时,它还抱怨 UI 测试,但我现在注释掉了这些文件。

ios swift xcode swiftui
3个回答
0
投票

您使用什么库/包?我在很长一段时间内遇到了类似的错误。我使用包管理器来实现 Firebase 功能,并且能够正常编译/运行,但不能专门用于预览或模拟器。那些被排除在外的建筑材料也不适合我。相反,我不得不切换回使用 Cocoapods 而不是包管理器,至少对于 Firebase 来说是这样。经过一番摆弄后,我再也没有遇到过问题,并且一直运行预览。如果这没有用,但您没有提供太多上下文,我深表歉意。


0
投票

我也遇到了同样的问题。然后我在 Xcode 中使用 Cmd+R 启动模拟器。 第一次就失败了。 第二次,它要求访问本地文件,然后模拟器就成功启动了。

然后我回到画布。它刚刚自行修复。


-5
投票

通常,此类问题可以通过清除派生数据文件夹来解决。以下是我通常遵循的步骤:

  • 使用 Cmd+Alt+Shft+K 深度清理项目
  • 退出 Xcode
  • 清除派生数据文件夹
  • 重新启动 Mac(并非总是需要)
  • 重新启动 Xcode
© www.soinside.com 2019 - 2024. All rights reserved.