iPhone / Xcode:不同的项目目标可以有不同的包标识符吗?

时间:2009-04-27 03:30:49

标签: iphone xcode

我有点困惑这是如何工作的 - 这是我的理解:

  • 目标的配置文件已链接到特定的应用ID
  • 目标的捆绑标识符位于目标信息\ Properies \ Identifier

但是...包ID也位于Info.plist中。似乎如果您在 Info.plist 中更改了套件ID,Xcode会自动在目标信息\属性\标识符中更改它,反之亦然。

哪个优先? 目标信息\属性\标识符捆绑包ID或 Info.plist 捆绑包ID?

我问的原因是因为我想为我的应用程序提供两个版本 - 免费广告支持版本和付费版本,我想用两个不同的目标实现这一目标。由于他们将是App Store中的两个不同的应用程序,我的理解是他们需要两个不同的应用程序ID(我不想沿着带有应用程序ID的*路线,在App Store上如何工作的描述使我的脑部受伤)。

如果我这样做,我是否需要为每个目标使用两个不同的Info.plists,或者我可以使用相同的Info.plist,只是让不同的目标使用不同的开发/分发配置文件?

1 个答案:

答案 0 :(得分:25)

没有优先权,属性对话框只是您查看Info.plist的另一种方式。

要在目标之间共享plist但具有不同的标识符,请确保为两个目标启用“在Info.plist文件中展开构建设置”选项。然后,对于每个目标,在您的包ID的目标设置中创建一个新的用户创建的变量(例如,APPLICATION_BUNDLE_IDENTIFIER,请参见此处:https://stackoverflow.com/a/18472235/308315)并将其设置为该目标的正确值。在plist中,将以下内容用于包ID:

<key>CFBundleIdentifier</key>
<string>$(APPLICATION_BUNDLE_IDENTIFIER)</string>

将在构建时为每个目标评估变量,因此每个目标都将获得正确的捆绑ID。