【问题标题】:Xcode different targets with same bundle identifierXcode 具有相同包标识符的不同目标
【发布时间】:2016-02-02 11:46:56
【问题描述】:

我的情况是我有一个项目有两个目标;一个给客户,第二个给买方。

我需要这两个目标共享相同的包标识符,例如 (com.company.app),因为我只想拥有一个 APNs 证书来克服服务器端的复杂性,因此它们都共享相同的 APNs 设置。

注意:App store 上只有一个应用,另一个将通过内部方式分发。

那么有可能有相同的捆绑标识符吗?

【问题讨论】:

  • 您确实意识到,如果假设客户从内部 dist 获取应用程序,然后再次从 App Store 获取应用程序,它将覆盖您在内部分发的应用程序?
  • @NSNoob 谢谢,是的,我已经知道了,这不是我的问题

标签: ios xcode


【解决方案1】:

您所说的内部分销方法是什么意思?你还会通过 iTunes 中的 TestFlight 发布它还是在内部分发 IPA 以便他们可以手动安装?

如果您想通过 TestFlight 分发它,那么您不能有两个具有相同捆绑 ID 的应用程序。你必须区分它。我建议您使用相同的应用程序,然后使用某种设置包进行内部分发,以防您想要控制应用程序商店和内部受众的应用程序配置。

您可以尝试其他方法。您可以使用内部版本号或 CFBundleVersion 属性来区分两个内部版本。我假设应用商店版本和同一应用的内部版本之间会有一些差异,例如如果您的应用使用服务器,则指向不同的服务器。在这种情况下,您可以将偶数构建用于应用商店,将奇数构建用于内部分发。

然后,您可以在应用中检查内部版本号并为应用商店和应用的内部版本提供不同的行为,而无需重新构建应用。在这两个目标中您唯一需要做的就是确保捆绑编号分别设置为偶数和奇数。您可以在运行脚本阶段执行此操作,其中可以相应地更改每个目标的 Info.plist 的 CFBundleVersion。

【讨论】:

  • 您可以尝试其他方法。您可以使用内部版本号或 CFBundleVersion 属性来区分两个内部版本。我假设应用商店版本和同一应用的内部版本之间会有一些差异,例如如果您的应用使用服务器,则指向不同的服务器。
  • 谢谢,要回答您的第一个问题,它不会通过 testFlight。关于区分它们然后我可以使用在我的构建设置中定义的预处理器,那不是我的问题
猜你喜欢
  • 2016-05-24
  • 2020-08-22
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2022-01-15
  • 1970-01-01
相关资源
最近更新 更多