29

我试图了解 iOS 应用程序的 AppID 的第一部分的作用。这部分以前称为“Bundle Seed ID”,但现在通常称为 AppID Prefix。

不久前(iOS 5?),Apple 在其门户和文档中进行了一些更改,并开始推荐使用“团队 ID”(每个开发者帐户唯一)作为 AppID 前缀。对于使用新应用程序的新开发人员来说,这非常简单明了。

但是,关于 AppID 前缀处理现有应用程序的最佳实践是什么?我知道在两个应用程序版本之间更改 BundleID(= AppID 的第二部分)是不可能的,但是在应用程序版本之间更改前缀是否安全?

请注意,我并不是指将“通配符 AppID”(例如 ABC1234567.*)替换为使用相同前缀的显式 AppID,例如 ABC1234567.com.mycompany.myapp。有大量关于这方面的信息(不过大部分都已经过时了)。我正在考虑通过将前缀替换为我的团队 ID(例如 DEF7654321.com.mycompany.myapp)来更改现有应用程序的完整 AppID,例如 ABC1234567.com.mycompany.myapp。

我想我在某处读到应该可以更改现有应用程序的前缀,除非应用程序使用钥匙串存储数据的特殊情况。如果这是真的,处理现有应用程序前缀的最简单方法是在发布下一个更新时迁移到新的团队 ID。当我的所有应用程序都迁移完毕后,我可以继续使用 Team ID(正如 Apple 为新应用程序所推荐的那样),最终忘记所有这些混乱。 谁能证实这一点?

如果您可以进一步了解 AppID 前缀的概念,以及它在 iOS 设备上的实际用途(除了我已经知道的钥匙串),如果您能写评论,我会很高兴。也许我们可以通过添加来自不同来源的点点滴滴来建立对此的充分理解。可悲的是,Apple 文档在这方面非常薄弱。

(还有另一个类似的问题:我的应用程序中的Bundle Identifier被批准后可以更改吗?但这主要是针对BundleID,即AppID的第二部分,所以这不是重复的,尽管有些答案和评论都涉及到这个话题。)

4

2 回答 2

25

截至今天,我的结论是,将 AppID 前缀替换为新前缀是完全安全的,但使用钥匙串的应用程序除外。这为将我在 App Store 上所有现有应用程序的前缀迁移到新的基于 TeamID 的前缀打开了大门。

该结论基于以下输入:

  • 几周前我与 Apple 的开发人员支持进行了讨论。他们告诉我,除了使用钥匙串的应用程序之外,更改前缀应该没有任何问题。
  • 我使用 ad-hoc 分发进行的一项测试,验证测试设备上的现有应用程序在更新到具有另一个前缀的新版本时没有丢失任何数据。
  • 到目前为止,我已经成功上传了两个现有应用程序的新版本,替换了前缀,没有任何问题。

我改过的两个“直播”应用的状态,是审核通过了。但是,他们目前正在“等待开发者发布”中等待,因为我正在等待第三个应用程序准备好以便与该版本同步。

如果我在 App Store 上线时发现任何问题,我当然会更新这个答案。

更新:

这两个应用程序在三个多星期前成功发布。推出按预期进行,我没有收到任何用户投诉。

总之,答案是肯定的,这是完全安全的!

于 2013-10-16T09:39:41.150 回答
10

Apple 于 2014 年 2 月 12 日发布了一份新的技术说明,确认可以(并且安全*)自己更改通配符应用程序 ID 的前缀,但对于显式应用程序 ID 仍然不可能自己更改。

但是,他们说如果您希望他们更改显式应用程序 ID 的前缀,您可以联系会员中心维护人员。

将这部分包括在这里,以防他们再次改变主意:

所有其他 App ID 都需要会员中心维护人员的帮助 - 如果您未使用通配符 App ID,则应联系 iOS 会员中心维护人员寻求帮助。以下是您可以用来执行此操作的步骤:

  1. 转到https://developer.apple.com/contact/
  2. 单击“注册和帐户”下的链接提交请求。

* 请记住,如果您的应用在 Keychain 中存储数据,更改应用 ID 前缀将导致一次性 Keychain 数据丢失。

于 2013-10-16T02:54:25.620 回答