“无法在此文件中预览 - 无法启动 [应用程序名称]”

Posted

技术标签:

【中文标题】“无法在此文件中预览 - 无法启动 [应用程序名称]”【英文标题】:"Cannot Preview in this file - Failed to launch [App Name]" 【发布时间】:2019-06-08 10:05:02 【问题描述】:

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

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

无法在此文件中预览 - 无法启动 [应用名称]

我尝试点击生成报告的诊断按钮,然后将报告发送给 APPLE:

[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“(空)” 用户信息=_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 运行应用程序, 模拟器也能正常工作

【问题讨论】:

我通过将命令行工具分配给 xcode 11 来修复它,它被设置为以前版本的 xcode 10。首选项 > 位置 > 命令行工具 [下拉] > 选择 xcode 11 两个建议? (我没有遇到此问题,但发现您的问题和答案对可能遇到相同问题的其他人可能很有价值。)#1。使用良好的降价重新格式化您的问题。错误/警告是简单的文本,难以阅读。 #2。将您的解决方案发布为答案而不是评论。 (这样做完全没问题!)我肯定会赞成。 谢谢@dfd 我用我的问题填写了***显示的文本框,因为它们在VStack中按顺序出现 我编辑了您的问题,在 4 个段落周围放置了“降价引号。最后一条评论 - 关于您收到的两个警告,请非常知道您使用的是“ beta 1" 版本的全新内容,如链接中所述,“例如,如果您在 SwiftUI 代码中出错,您通常会收到几乎无法理解的错误消息。” 希望这会有所改善未来的测试版。wwdcbysundell.com/2019/interviews/paul-hudson thankYou dfd [markdown quotes] 我会记住的。 【参考方案1】:

我在使用 SwiftUI 启动 ios 应用程序,然后在项目属性中检查 Mac 目标(即,使用 Catalyst 创建跨平台应用程序)时遇到了这个UVFoundation.FailureCategory.infrastructureFailure。当我这样做时,默认设备更改为“我的 Mac”并且预览停止工作,在诊断窗口中产生了这个错误。

Mac 目标的预览似乎不受支持——您必须选择一些 iOS 目标(“通用 iOS 设备”对我来说很好用)。使用 Xcode 11 beta 5 在 Mojave beta 5 上进行测试。来自 Xcode 11 beta 5 发行说明:“Xcode 11 不支持在 Mac Catalyst 应用程序中使用 SwiftUI。(41416222、51201699)”

选择了“我的 Mac”,它不起作用!

使用选中的“通用 iOS 设备”。

【讨论】:

这为我解决了问题;谢谢你!不能用选中的 Mac 设备预览,因为 macOS 10.15 支持 SwiftUI,就像 iOS 13 一样。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

然后,尝试重新启动 XCode,问题已修复。【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

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

我在“诊断”中得到了提示 "... 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

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

在这个link,你可以找到更多信息

【讨论】:

也为我工作,但我实际上可以在之后将它改回“相对于组”,它仍然有效。因此,显然更改该设置会触发内部内容,一旦发生,它就会起作用。 ?‍♂️【参考方案8】:

打开终端并输入以下命令

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

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

【讨论】:

【参考方案9】:

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

" Dyld 错误信息: 应用是为 iOS 13.2 构建的,比这个模拟器 13.1 更新 "

所以我将 iOS 部署目标从构建设置更改为 13.1。

点击简历,它对我有用。

【讨论】:

【参考方案10】:

对我来说,除了 11 Pro max 之外,其他任何东西都可以使用。

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

同样的错误

尝试:

编辑器 > 画布 > 刷新率

【讨论】:

【参考方案14】:

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

    复制有问题的文件的内容(例如 ContentView.swift)。 从您的项目中删除有问题的文件。 创建一个新的“SwiftUI 视图”并将其重命名为您删除的任何文件。 将您在第 1 步中复制的内容粘贴回去。 在画布中单击恢复。

【讨论】:

***.com/questions/56435054/…

以上是关于“无法在此文件中预览 - 无法启动 [应用程序名称]”的主要内容,如果未能解决你的问题,请参考以下文章