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

时间:2019-06-08 10:05:02

标签: swift swiftui xcode11 macos-catalina

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

当我按下“恢复”按钮时: 它说:

  

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

我尝试点击诊断按钮以生成报告,并将其发送给APPLE,说:

  

[FailedToLaunchError(url:   文件:///Users/naive/Library/Developer/Xcode/DerivedData/first_swiftUI-dymizjogcbtouhclgjhhefagmcqo/Build/Intermediates.noindex/Previews/first_swiftUI/Products/Debug-iphoneos/first_swiftUI.app,   底层:错误域= NSOSStatusErrorDomain代码= -10661“(空)”   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)运行该应用程序, 模拟器也可以正常工作

13 个答案:

答案 0 :(得分:9)

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

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

选择了“我的Mac”,它不起作用! "My Mac" selected, it doesn't work!

使用“通用iOS设备”已选择。 Working with "Generic iOS device" selected

答案 1 :(得分:5)

我通过将命令行工具分配给xcode 11来解决此问题,它被设置为xcode 10的早期版本。

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

答案 2 :(得分:1)

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

已经列出的解决方案中没有一个对我有用。

“诊断”一词中,我暗示"... 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?))} ..."

这解决了问题:项目>目标> MacOSTarget>签名证书> 开发

(以前是“ 要在本地运行的标志”)

答案 3 :(得分:1)

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

答案 4 :(得分:0)

打开终端并输入以下命令

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

,然后运行sudo xcodebuild -license。键入同意,然后按返回键以获取许可证。另外,请从Xcode中的Xcode 11中为命令行工具选择Preference -> Location -> CommandLine。这对我有用。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我只是退出 XCode ,然后使用相同的项目再次打开并开始预览。尝试一次。

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

答案 7 :(得分:0)

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

” Dyld错误消息: 该应用是为iOS 13.2构建的,该应用比此模拟器13.1更新

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

点击简历,它对我有用。

答案 8 :(得分:0)

对我来说,选择11 Pro max以外的任何东西,它将起作用。

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

我遇到了同样的问题,改变位置对我有用。我把它从“相对于组”改为“相对于项目”,预览就出来了!

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

答案 12 :(得分:-1)

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

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