无法预览此文件- 活动方案不建立此文件:在CatalinaOS上使用Xcode 11的SwiftUI

40

我在macOS Catalina(10.15)上使用Xcode 11打开了SwiftUI的地标应用程序,并且当我打开包含SwiftUI的.swift文件的画布编辑器(Canvas Editor)时,出现以下提示:

无法在此文件中预览 - 活动方案未构建此文件

再试一次(Try Again)诊断(Diagnostics)选项或重新启动Xcode都无法解决问题。


4
我遇到了许多相同的问题。你是从下载文件夹运行它的吗?这似乎会引起问题(网上有一些评论)。你可以尝试使用 ctrl+alt+shift+k 进行深度清理,然后重新构建应用程序。 - Simon McLoughlin
将下载文件夹中的项目复制到桌面上对我很有效... - Tianyun Ling
四年后仍在发生。 - undefined
17个回答

38
如果这是从复制的文件夹中新建的项目且在iCloud文件夹中,只需关闭Xcode并重新启动即可。同步尚未完成。

1
那对我来说解决了问题。除了“拔掉电脑并重新启动”之外,还有其他诊断方法吗?毕竟文件同步不应该在任何同步停止后继续成为问题数小时吧?这里的潜在错误是什么?这只是从上面的“ctrl+alt+shit+k”中愚蠢的做法吗? - Dirk Bester
这个修复方法对我有效,尽管我的情况原因不同:我(1)打开了一个xcodeproj,然后(2)运行了pod init并(3)打开了xcworkspace。从项目切换到工作区显然让Xcode感到困惑。退出并重新打开Xcode解决了这个问题。 - Paul Cantrell

20

您需要仔细阅读 Xcode 和 Apple SDK 协议,您可以在 Mac 终端中运行以下命令来完成此操作:

sudo xcodebuild -license

完成这些步骤后,重新打开您的项目。


4
起初我想,“这不可能行得通。这跟错误有什么关系?”但是,它确实行得通了。为什么? - Mark Moeykens
这是接受此处提到的条件和许可协议的方式(https://www.apple.com/legal/sla/docs/xcode.pdf),例如在您的应用程序中使用位置服务、HealthKit API等。 - Keivan
难以置信,这个方法有效!自从安装了Xcode 13 beta以来,我和我的同事的预览功能一直无法正常使用。我已经断断续续地搜索了数月,试图找出解决方法。毫无疑问,Xcode应该足够聪明,能够告诉我们这个问题... - David Hunt
在尝试了所有其他选项并思考可能是不同的文件出现问题后,“目标成员资格”对我起作用了。太神奇了! - Beau Nouvelle
1
为什么这个能工作???????我的天啊 - Steven-Carrot
这是我读过的最令人无语的解决方案。 - Steven-Carrot

17

选择具有当前文件预览的方案
在此输入图像描述


14
但是怎么做呢?你是通过点击哪个链接才进入那个页面的? - Nic Wanavit
编辑方案的更多信息请访问 https://dev59.com/smQn5IYBdhLWcg3w_LNH#49249319 - Lone Ronin
3
@NicWanavit 产品 → 方案 → <从底部选择一个方案> - Cloud
请问你是如何打开那个窗口的?之前尝试的方法都没有成功。 - undefined
请问你是如何打开那个窗口的?之前尝试的方法都没有成功。 - undefined

6

我遇到了同样的问题。我所做的只是将下载文件夹中的“StartingPoint”文件夹复制出来重新启动项目。这样就可以解决了!


5
我也遇到了这个问题,是在按照Landmarks教程时发生的。当我创建“CircleImage.swift”文件时,无法预览,并出现以上错误信息。
您可以通过转到“Product > Scheme”查看您当前使用的方案。我选择了macOS。

Product > Scheme, from there, you can see "Landmarks (macOS)" is selected.

单击CircleImage.swift文件加载它,在最右边的侧边栏中显示属性检查器。在其左侧几个按钮之一是“显示文件检查器”。
在那里,您可以看到该文件选择的“目标成员资格”。我的问题是“地标(macOS)”没有被选中。立即勾选此项即可使预览工作。

The File inspector, which looks like a dogearred page, showing the Target Membership list.

我想我也可以将我的产品方案更改为iOS,这样它就可以工作了,因为那已经被勾选了。


1
我刚刚在macOS上使用Swift UI的Garden App示例时遇到了同样的问题。问题不在于文件是否已添加到方案中,而是在加载时项目默认为“Garden App End”方案,而不是在进行代码编写时所需的“Garden App Start”方案。希望这能帮助其他人 :) - maninvan

4
当我使用“创建文件夹引用”选项而不是“创建组”选项将一个文件夹复制到我的项目中时,出现了这个问题。当我从项目中删除该文件夹并再次使用后者选项复制该文件夹时,问题得以解决。

4

我在尝试在Canvas上进行预览时,一些SwiftUI View文件遇到了相同的错误。修复问题的方法是我将当前文件中的代码复制,删除该文件,使用相同名称创建一个新的SwiftUI View文件,并粘贴原始代码。希望可以帮助到你!

在"文档/Desktop"中创建一个新文件夹并将文件复制过去也可以解决此问题。


2
在通过git克隆项目后(没有像另一个答案中描述的通过iCloud同步),我遇到了所描述的问题 - 因此我肯定知道同步本身已经完成。有趣的是,重新启动Xcode解决了问题。仅仅关闭和重新打开项目是不够的。

1

我刚升级到 Monterey 12.3 和 Xcode 13.3,结果遇到了这个问题。升级前一切正常。上述方法都没有帮助。

创建一个新项目可以解决问题。所以我发现的唯一方法就是创建一个新项目,然后将旧项目中的文件添加到新项目中。很麻烦。

编辑:我没有重新启动电脑(Mac mini),重新启动之后问题得到了解决。


1
在我的情况下,我清理了derivedDate文件夹并重新启动Xcode解决了这个问题。
2023年更新:我使用Xcode 14.3重新打开项目,问题已经解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接