Xcode- 如何为不同的构建配置设置不同的捆绑标识符?

36
在Xcode设置中的项目的“Info”选项卡(而不是目标的“Info”选项卡)中,我有3个不同的构建配置,每个配置都有2个“.xcconfig”文件用于我的iOS Xcode项目。enter image description here 我希望在不同的配置中具有不同的bundle标识符,以便更好地进行代码签名管理。以下是我的通用身份设置、信息选项卡设置和构建设置下的包标识符设置。

enter image description here

信息部分 -

enter image description here

构建设置-

enter image description here

当我直接在一般部分更新捆绑标识符时,所有构建配置的构建设置中的产品捆绑标识符值都会被覆盖。请为我提供更好的管理方式!
2个回答

28

据我所见,你已经为每个配置设置了单独的xcconfig文件。这意味着你只需要在每个构建配置/xcconfig文件中添加相应值的捆绑标识符键即可。

PRODUCT_BUNDLE_IDENTIFIER = com.mycomp.hockey

确保您不要在Xcode项目构建设置中覆盖这些xcconfig设置(对应的值不应该是粗体)。

如果您想在开发过程中在不同的Bundle标识之间切换,您可能需要为每个构建配置创建一个schemes。这样,您只需在Xcode方案选择器中选择相应的scheme即可(位于构建/运行按钮旁边)。

enter image description here

要创建新方案,请从方案选择器中选择New scheme并选择一个名称,例如MyApp [Hockey]。然后编辑该方案,为每个步骤选择首选的构建配置,例如在Archive步骤中选择MyApp [Hockey]

enter image description here

您会注意到,您的目标信息屏幕上的Bundle标识符将根据所选方案而改变。有时,您需要在项目设置的不同选项卡之间切换,然后再返回到Info选项卡,才能使Bundle标识符更改(这是Xcode的众多错误之一)。

我们在所有项目中都使用完全相同的方法。

希望能对您有所帮助。


@JensMeder- 感谢您的回答。我尚未使用单独的xconfig文件,但这听起来是一个不错的方法。我会试一试。有一个疑问- 当您为每个 scheme 使用单独的 xconfig 文件时,在 general 部分 --> bundle Identifier 字段中指定什么值呢? - Rashmi Ranjan mallick
谢谢!如果您看到我的问题中的截图,您会发现不同的构建配置有不同的产品捆绑标识符。但是,第一个值(即com.mycomp.xyz)会在常规部分中填充。这样可以吗? - Rashmi Ranjan mallick
哦,好的!现在听起来更好了。 - Rashmi Ranjan mallick
你说它会从“运行”步骤中选择的构建配置进行操作。那么,“归档”步骤中指定的值不会产生影响吗? - Rashmi Ranjan mallick
无论如何,我会尝试使用这种xconfig方法。 - Rashmi Ranjan mallick
显示剩余7条评论

25

我觉得Jens的回答有点不太清楚。你只需将xcconfig中声明的变量 (PRODUCT_BUNDLE_IDENTIFIER = com.mycomp.hockey) 添加到 Info.plist 产品包标识字段即可:

Info.plist变量示例

另外别忘了在每个xcconfig文件中声明它。享受吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接