要从程序访问资源文件namefile:
namefile
我表面上只需要选中"目标成员资格"复选框就可以将其标识为资源文件:
但是该框是禁用的。我错过了什么?
31moq8wy1#
项目中的helloworld目标被配置为命令行工具(看起来像终端的黑色方形图标表示这一点)。这些目标编译为单个独立文件,因此Xcode无法将其嵌入资源文件(这就是为什么它被禁用)。如果希望能够包含资源文件,则需要生成“可可Application”目标。您可以使用Cocoa Application模板启动新项目,也可以手动将目标添加到当前项目中。您可能会发现启动新项目更容易。
helloworld
lmvvr0a82#
将该文件添加到项目生成阶段的“复制文件”部分:
确保将Destination设置为“资源”,清除Subpath,并取消选中Copy only when installing。然后,无论何时构建,Xcode都会将文件复制到应用的build目录中,就在可执行文件旁边:
Destination
Subpath
Copy only when installing
这是~/Library/Developer/Xcode/DerivedData/[your project]/Build/Products/Debug文件夹的屏幕截图。此方法也适用于归档应用。注意:如果你想把文件放在相对于可执行文件的某个子文件夹中,例如res/images/,把Subpath设置为那个路径。
~/Library/Developer/Xcode/DerivedData/[your project]/Build/Products/Debug
res/images/
2条答案
按热度按时间31moq8wy1#
项目中的
helloworld
目标被配置为命令行工具(看起来像终端的黑色方形图标表示这一点)。这些目标编译为单个独立文件,因此Xcode无法将其嵌入资源文件(这就是为什么它被禁用)。如果希望能够包含资源文件,则需要生成“可可Application”目标。您可以使用Cocoa Application模板启动新项目,也可以手动将目标添加到当前项目中。您可能会发现启动新项目更容易。
lmvvr0a82#
将资源文件添加到命令行工具
将该文件添加到项目生成阶段的“复制文件”部分:
确保将
Destination
设置为“资源”,清除Subpath
,并取消选中Copy only when installing
。然后,无论何时构建,Xcode都会将文件复制到应用的build目录中,就在可执行文件旁边:
这是
~/Library/Developer/Xcode/DerivedData/[your project]/Build/Products/Debug
文件夹的屏幕截图。此方法也适用于归档应用。
注意:如果你想把文件放在相对于可执行文件的某个子文件夹中,例如
res/images/
,把Subpath
设置为那个路径。