Xcode具有特殊的Build Phase Copy Bundle Resources以及更通用的Copy Files。当我将后者的目的地设置为资源时,我无法发现行为上的任何差异,列出的文件在两种情况下都被复制到Contents/Resources
。
This answer说复制文件更强大,也可以做其他位置,但我仍然没有看到为什么人们应该使用Copy Bundle Resources。它是否做了我错过的特别的事情?
Copy Bundle Resources阶段确实做了一些额外的工作:
.iconset
文件夹中的图像(通常用于多个分辨率)将转换为单个.icns
文件(与iconutil -c icns
命令一样)。PLIST_FILE_OUTPUT_FORMAT
构建设置进行转换。.strings
文件根据STRINGS_FILE_OUTPUT_ENCODING
构建设置进行转换。也许有更多的转换为其他文件格式...这些只是我通过反复试验找到的。
PS:PLIST_FILE_OUTPUT_FORMAT
和STRINGS_FILE_OUTPUT_ENCODING
可以通过将APPLY_RULES_IN_COPY_FILES
设置为true
在复制文件阶段强制执行。但这不适用于iconset转换。