2

在 xcode 4.5 中,我如何为不同的构建选择不同的目标设置,例如一种用于调试的目标设置、一种用于发布的目标设置等,因此我可以根据构建等定义不同的图标。

4

2 回答 2

4

你有两个选择,都不完美。正如您所建议的,我将专注于根据您的构建配置使用不同图标的具体示例,尽管这两种技术都可以更广泛地应用。

在您的 Info.plist 中重定向

这是最简单的方法。在目标的 Info.plist 中指定“图标文件”属性,例如“Icon-${CONFIGURATION}”。然后,创建两个 ICNS 图标,“Icon-Release.icns”和“Icon-Debug.icns”,并将它们添加到您的项目中。就是这样。这种方法的缺点是每次都会将两个图标复制到您构建的应用程序中,而不仅仅是它需要的那个。

使用“运行脚本”构建阶段

这涉及更多一点,但它会给你一个更好的结果。使用以下脚本向您的目标添加运行脚本构建阶段:

cp "$(dirname "${PRODUCT_SETTINGS_PATH}")/Icon-${CONFIGURATION}.icns" "${SCRIPT_OUTPUT_FILE_0}"

将其输出文件指定为:

$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Icon.icns

并确保 Info.plist 中的“图标文件”属性设置为“图标”。

这依赖于您的图标与源代码树中的 Info.plist 位于同一文件夹中(尽管您可以编辑脚本,但您希望适合您的项目配置)。

另请注意,使用这种方法,Xcode 将无法看到您已正确设置图标,因此例如在目标设置的“摘要”选项卡中,它仍会显示图标的问号占位符。您需要进行实际构建以验证它是否正常工作。

于 2012-11-17T18:17:06.243 回答
0

我的解决方案与 Wade 的第一点非常接近,您还可以在项目配置中使用用户定义的设置添加动态后缀。

用户定义的设置

我使用这个解决方案来动态化图标、包显示名称以及我的构建的包标识符,以便能够在我的开发版本旁边使用来自应用商店的版本。

info.plist 动态化

于 2012-12-26T11:00:10.013 回答