我不希望Xcode弄乱这些值.我可以简单地设置它们吗?例如,对于${REGION},插入“en”.对于CFBundleDisplayName – 什么都没有,因为文档说:
If you do not intend to localize your bundle,do not include this key
in your Info.plist file. Inclusion of this key does not affect the
display of the bundle name but does incur a performance penalty to
search for localized versions of this key.
等等.我可以这么做吗?什么插入“CFBundleExecutable”?我想我必须知道Xcode生成什么?
这是一个可怕的设计,因为有两个值的来源:plist本身,以及Xcode中的一些愚蠢的Meta-plist.
解决方法
这通常是一个很棒的功能,因为它可以避免根据您的构建设置和配置使用不同的Info.plist,并避免您在多个位置修改设置.但如果您真的不想要它,只需在项目或目标的构建设置中关闭此设置即可.
我建议您保留此设置,以便在构建设置中选择的值将在Info.plist中报告,如果您需要更改应用程序名称之类的内容,请直接在Build Settings中更改它.这样,您将保持构建设置与Info.plist文件之间的一致性,而不是冒着配置不一致的风险.
一个很好的例子是你自己在自己的问题中写的那个:Info.plist文件的CFBundleExecutable条目.此条目通常必须包含捆绑包中可执行文件的名称(以便iOS知道要在.ipa捆绑包中启动哪个可执行文件).
此值通常取决于您的构建设置,通常是EXECUTABLE_NAME构建设置.如果您更改了生成的可执行文件的名称(在项目或目标的构建设置中)并且您确实在Info.plist中为此值添加了一些常量字符串,则显然需要将此CFBundleExecutable键更改为新名称Xcode生成的可执行文件.如果您使用${EXECUTABLE_NAME}作为此密钥的值(并在项目设置中保持对Info.plist的处理),Xcode将替换它,确保Info.plist与您的构建设置一致以及它生成的可执行文件的名称.
我没有看到Xcode禁用Info.plist文件的这个处理阶段的任何好处;你应该利用它并继续使用${xxx}构建变量,以便它们在编译时动态地替换它们的实际值Xcode,从而确保一致性并避免错误.