11

我正在尝试在 Xcode 11 和 macOS Catalina 中使用 swiftUI。但是在创建一个新项目之后,有一个样板代码,其中包含一个写着 hello World 的文本。我想在代码旁边的画布中实时预览这个简单的欢迎消息。

当我点击恢复按钮时:它说:

无法在此文件中预览 - 无法启动 [App Name]

我试过点击生成报告的诊断按钮,将其发送给苹果说:

[FailedToLaunchError(url:file:///Users/naive/Library/Developer/Xcode/DerivedData/first_swiftUI-dymizjogcbtouhclgjhhefagmcqo/Build/Intermediates.noindex/Previews/first_swiftUI/Products/Debug-iphoneos/first_swiftUI.app,底层:错误域=NSOSStatusErrorDomain 代码=-10661 "(null)" UserInfo={_LSLine=3554, _LSFunction=_LSOpenStuffCallLocal}, failureCategory: UVFoundation.FailureCategory.infrastructureFailure)]

这是代码,它是使用 Xcode 11 创建的新项目附带的默认代码,并且选中了 SwiftUI 选项:

import SwiftUI

struct ContentView : View {
    var body: some View {
        Text("Hello World")
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

我希望画布能够显示并显示我的代码的实时预览。画布没有出现!!

生成了两条警告消息:

:0: 警告:导入的声明“UITableViewDiffableDataSourceCellProvider”无法映射到“UITableViewDiffableDataSourceReference.CellProvider”

:0: 警告:导入的声明“UICollectionViewDiffableDataSourceCellProvider”无法映射到“UICollectionViewDiffableDataSourceReference.CellProvider”

除此之外,我的 iPad 11" 与 iPadOS beta 运行应用程序,模拟器运行良好

4

14 回答 14

24

I encountered this UVFoundation.FailureCategory.infrastructureFailure when starting an iOS app with SwiftUI and then checking the Mac target in the project properties (i.e., using Catalyst to create a cross-platform app). When I did this the default device changed to "My Mac" and preview stopped working, yielding this error in the diagnostic window.

Preview for the Mac target doesn't seem to be supported—you have to select some iOS target ("Generic iOS Device" works just fine for me). Tested on Mojave beta 5 with Xcode 11 beta 5. From the Xcode 11 beta 5 release notes: "Xcode 11 doesn’t support working with SwiftUI in a Mac Catalyst app. (41416222, 51201699)"

"My Mac" selected, it doesn't work!

Working with "Generic iOS device" selected. Working with

于 2019-08-18T22:39:32.207 回答
11

我通过将命令行工具分配给 xcode 11 来修复它,它被设置为 xcode 10 的先前版本。

转到: 首选项>位置>命令行工具[下拉]>选择xcode 11

于 2019-06-08T18:08:45.773 回答
6

检查路径上的诊断报告~/Library/Logs/DiagnosticReports
打开 fileName.crash 文件(fileName是导致崩溃的文件)并Application Specific Information
根据信息搜索修复您的代码

于 2019-11-10T14:12:10.837 回答
2

我刚刚退出XCode并使用同一个项目再次打开它并开始预览。试一次。

仍然没有运气。Command+K(清理项目),Resume再次点击。

于 2020-02-14T06:55:04.683 回答
2

Cannot preview in this file -- Update failed在应用 cocoapods 和 Xcode 建议后,我在 Catalina 10.15.5 和 Xcode 11.5 上尝试使用香草 SwiftUI 项目模板预览 Canvas for MacOS 目标时遇到了这个问题(

已经列出的解决方案都不适合我。

我在“诊断”中得到了提示"... code signature in (.../Data/ContentView.2.preview-thunk.dylib) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?))} ..."

这解决了这个问题:Project > TARGETS > MacOSarget > Signing Certificate > Development

(以前是“登录本地运行”)

于 2020-06-15T20:24:14.967 回答
1

如果您单击运行/“播放”按钮右侧的项目名称,您可以切换到iOS选项。它最初设置为macOS

于 2020-12-27T13:52:09.073 回答
1

我遇到了同样的问题,更改位置对我有用。我将它从“相对于组”更改为“相对于项目”并且预览出现了!

在此链接中,您可以找到更多信息

于 2020-12-28T22:51:35.183 回答
0

就我而言,我检查了生成的诊断报告并显示

“ Dyld 错误消息: 应用程序是为比此模拟器 13.1 更新的 iOS 13.2 构建的

因此,我将 iOS 部署目标从构建设置更改为 13.1。

点击简历,它对我有用。

于 2020-04-21T07:17:12.910 回答
0

对我来说,选择除 11 Pro max 之外的任何东西都可以。

于 2020-06-22T23:13:15.147 回答
0

就我而言,这是因为我无意中尝试在真实设备而不是模拟器上构建。通过从列表中选择一个模拟器,它再次启动并运行。

于 2020-06-29T10:26:57.583 回答
0

打开终端并输入以下命令

sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer

然后运行sudo xcodebuild -license。键入同意并按返回键返回许可证。还要从Xcode 中选择Xcode 11命令行工具。Preference -> Location -> CommandLine这对我有用。

于 2019-07-22T05:27:12.710 回答
0

我有同样的问题,我发现这是一个运行时错误导致这个错误,因为项目编译成功。该错误是由项目中未引用的图像引起的。

于 2020-08-17T22:20:29.083 回答
0

同样的错误

尝试:

编辑器 > 画布 > 刷新率

于 2021-11-30T15:41:30.680 回答
-1

以上都不适合我-但我确实找到了一种方法...

  1. 复制有问题的文件的内容(例如 ContentView.swift)。
  2. 从您的项目中删除有问题的文件。
  3. 创建一个新的“SwiftUI 视图”并将其重命名为您删除的任何文件。
  4. 将您在步骤 1 中复制的内容粘贴回去。
  5. 单击画布中的恢复。
于 2020-01-28T12:10:13.433 回答