9

我正在为我的 iOS 应用程序准备 Info.plist。我想仔细设置每个选项。但是,有一些奇怪的变量,如 ${REGION}、${APPNAME}、${EXTRA_ICONS} 等。我猜它们是通过 Xcode 设置的?

我不希望 Xcode 弄乱这些值。我可以简单地设置它们吗?例如,对于 ${REGION} 插入“en”。对于 CFBundleDisplayName – <strong>什么都没有,因为文档说:

如果你不打算本地化你的包,不要在你的 Info.plist 文件中包含这个键。包含此键不会影响包名称的显示,但会导致搜索此键的本地化版本时的性能损失。

等等。我可以简单地做到这一点吗?为“CFBundleExecutable”插入什么?我想我必须知道 Xcode 生成了什么?

这是一个可怕的设计,因为有两个值来源:plist 本身,以及 Xcode 中的一些愚蠢的元 plist。

4

1 回答 1

11

由于您的项目的“扩展 Info.plist 文件中的构建设置”()构建设置,您的Info.plist文件由 Xcode 处理。INFOPLIST_EXPAND_BUILD_SETTINGS

这通常是一个很棒的功能,因为它避免了根据您的构建设置和配置而拥有不同的 Info.plist,并避免您在多个位置修改设置。但如果您真的不想要它,只需在项目或目标的 Build Settings 中关闭此设置即可。


我建议您仍然保持此设置,以便在您的构建设置中选择的值将在您的 Info.plist 中报告,如果您需要更改应用程序名称等内容,请直接在构建设置中进行更改。这样,您将保持构建设置和 Info.plist 文件之间的一致性,而不是冒着配置不一致的风险。

一个很好的例子是您在自己的问题中自己写的:文件的CFBundleExecutable条目Info.plist。此条目通常必须包含您的包中的可执行文件的名称(以便 iOS 知道要在您的 .ipa 包中启动哪个可执行文件)。

此值通常取决于您的构建设置,通常是EXECUTABLE_NAME构建设置。如果您曾经更改生成的可执行文件的名称(在项目或目标的构建设置中)并且确实在 Info.plist 中为该值放置了一些常量字符串,您显然需要将此CFBundleExecutable键更改为Xcode 生成的可执行文件。如果您将${EXECUTABLE_NAME}其用作此键的值(并在项目设置中保持对 Info.plist 的处理处于打开状态),Xcode 将为您替换它,确保 Info.plist 与您的构建设置和名称一致它生成的可执行文件。

我看不到通过 Xcode 禁用 Info.plist 文件的此处理阶段的任何优势;您应该利用它并继续使用${xxx}构建变量,以便在编译时动态地将它们替换为实际值 Xcode,从而确保一致性并避免错误。

于 2012-09-13T20:36:12.467 回答