iPhone/Xcode : can different project targets have different bundle identifiers?

标签 iphone xcode

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

  • 目标的配置文件链接到特定的应用 ID
  • 目标的 bundle 标识符位于Target info\Properies\Identifier

但是...捆绑 ID 也位于 Info.plist 中。看来,如果您更改 Info.plist 中的捆绑 ID,Xcode 会自动在 Target info\Properties\Identifier 中更改它,反之亦然。

那么哪个优先呢? Target info\Properties\Identifier bundle ID 或 Info.plist bundle ID?

我问这个问题的原因是因为我希望我的应用程序有两个版本 - 一个免费广告支持版本和一个付费版本,并且我希望通过两个不同的目标来实现这一目标。由于它们将是 App Store 中的两个不同的应用程序,因此我的理解是它们需要两个不同的应用程序 ID(并且我不想使用应用程序 ID 沿着 * 路线走下去,关于如何在 App Store 上工作的描述使我脑损伤)。

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

最佳答案

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

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

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

该变量将在构建时针对每个目标进行评估,因此每个目标都会获得正确的包 ID。

关于iPhone/Xcode : can different project targets have different bundle identifiers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792170/

相关文章:

iphone - 为 uitextfield iphone 提供自定义自动建议

iphone - 如何隐藏导航栏的 uibarbutton 项目

iphone - 如何检查核心数据中的实体是否具有值 id?

objective-c - 制作报亭兼容应用程序的非内容部分

ios - Nib 原型(prototype) uitableviewcell cellForRowAtIndexPath :

iphone - 播放期间拔下耳机会导致 iPhone 应用程序出现错误

ios - 使用 WatchOS App 时未调用 viewDidLoad

html - iPhone 上奇怪的 CSS 渲染

xcode - 使用自定义单元格在两个 UITableView 之间传递数据

xcode - _SecTrustEvaluate与Google Cardboard Unity3d SDK的链接错误