将资源文件添加到Xcode

65

我正在尝试将一些新的资源文件添加到一个由另一个人在另一台Mac上构建的项目中。我认为该项目具有先前用户的配置。

使用右键单击->添加文件到"MyProject"并不能提供预期的结果。在编译项目后,添加的文件在应用程序中不可见。

如何在我的项目中添加新资源?

PS:我正在macincloud.com帐户中学习Objective-C


当您说“编译项目后,应用程序中不可见添加文件”的时候,您指的是什么?它是否不在您预期的位置,而在结果捆绑包中的其他位置,或者根本不在捆绑包中?它是否在任何“复制资源”阶段中?这是什么类型的资源文件?图像?声音?请提供更多信息。 - user1118321
@dole-doug,你的问题得到了回答吗?如果是的话,请接受所给出的答案或者详细说明你的问题。 - Paul Peelen
4个回答

80
可能是您添加的文件未添加到项目构建中。单击项目 > 应用程序目标 > 构建阶段,检查文件是否存在于编译源(如果需要编译)中,否则请检查复制捆绑资源。 如果该文件不存在,请将其拖到那里,然后它就可以正常工作(根据我对您问题的理解)。 编辑 您还可以通过单击文件并打开“文件检查器”(视图 > 实用程序 > 显示文件检查器++1),并检查目标成员资格部分来检查文件是否已添加到目标中。
例如:
Example

1
如果你检查了这些问题,但仍然失败了,可能是因为Xcode更新移动了目标文件夹(我也遇到过这种情况)。所以,它们不再在myapp.app/sounds中,而是在根目录的myapp.app/位置。 - SimplGy
1
解决子文件夹问题的方案:https://dev59.com/C2gu5IYBdhLWcg3w8Lav - SimplGy

19

将内容添加到复制资源包对我有用

在此输入图片描述


1
“Copy Bundle Resources”在最近的Xcode版本中已经不存在。 - Andrew Koster
4
@AndrewKoster,我在Xcode 11.5中看到了它。如果您没有看到该阶段,请单击框架左上方附近的加号图标,然后选择“新建复制捆绑资源阶段”。 - kevlened

15

只需将资源文件(从查找器窗口)拖到项目文件区域(左侧),并放置支持文件。

一旦你放下,会弹出一个对话框提示你要添加到哪些目标中。选择所有适当的目标即可。就这样。


2

最近我也遇到了与Xcode版本11.7(11E801a)类似的问题,这可能会帮助其他人避免浪费一天半的时间。

除了其他答案中解释如何添加资源之外:

对于我来说,问题在于我的资源被列在目标的“常规”选项卡下的“Developer Assets”中,但也在“Build Phases/Copy Bundle Resources”中。在模拟器和设备上通过Xcode运行时,它可以正常工作,但当我要归档应用程序时,资源未被复制。从“Developer Assets”列表中删除我的资源,但保留在“Build Phases”中的资源可以工作。

最终结果证明,无论是通过XCode运行还是归档,我只需要将资源放在“Build Phases”部分即可!


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