在更新之间更改AppID前缀是否安全?

我正在尝试了解AppID的第一部分iOS应用程序的angular色。 这部分以前被称为“捆绑种子ID”,但现在通常被称为AppID前缀。

前段时间(iOS 5?),苹果公司在其门户网站和文档中做了一些修改,并开始推荐使用“Team ID”(每个开发人员帐户唯一)作为AppID前缀。 对于使用新应用程序的新开发人员来说,这非常简单直接。

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

请注意,我并不是指使用相同的前缀(例如ABC1234567.com.mycompany.myapp)将“通配符AppID”(例如ABC1234567。*)replace为明确的AppID。 有关于这个的大量信息(尽pipe大部分是过时的)。 我正在考虑更改完整的AppID,例如ABC1234567.com.mycompany.myapp,通过用我的团队ID取代前缀,例如DEF7654321.com.mycompany.myapp。

我想我已经在某处读过,应该可以更改现有应用程序的前缀,除非应用程序使用钥匙串存储数据的特殊情况除外。 如果这是真的,那么处理现有应用程序的前缀的最简单方法就是在发布下一次更新时迁移到新的团队ID。 当我的所有应用程序都被迁移后,我可以继续使用团队ID(正如苹果推荐的新应用程序),最后忘掉所有这些混乱。 任何人都可以确认吗?

如果您可以在AppID前缀的概念和iOS设备上实际使用的东西(除了我已经知道的钥匙串)更多的指示灯,我会很高兴,如果你可以写评论。 也许我们可以通过添加来自不同来源的零碎来充分理解这一点。 不幸的是,苹果的文档在这个领域非常薄弱。

(还有另外一个类似的问题: 我可以在应用程序批准后更改Bundle标识符吗?但是主要关注BundleID,也就是AppID的第二部分,所以这不是重复的,尽pipe有些答案和评论都触及这个话题。)

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

这个结论是基于以下input:

  • 几个星期前我和苹果的开发者们进行了一次讨论。 他们告诉我,改变前缀不应该有任何问题,除了使用钥匙串的应用程序。
  • 我做了一个testing,使用ad-hoc发行版,validationtesting设备上的现有应用在使用另一个前缀更新为新版本时没有丢失任何数据。
  • 事实上,我成功地上传了两个我现有应用程序的新版本,replace了前缀,至今没有任何问题。

我已经更改的两个“实时”应用程序的状态是,他们已经在审查中被批准。 但是,他们目前正在等待“等待开发者发布”,因为我正在等待第三个应用程序做好准备,以便将该版本与该版本同步。

如果我在App Store上看到任何问题,我当然会更新这个答案。

更新:

这两个应用程序在三周前成功发布。 推出工作如预期,我没有收到任何用户的投诉。

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

苹果公司于2014年2月12日发布了一个新的技术说明 ,确认可以(和安全地* )自行更改通配符应用程序ID的前缀,但仍然无法自己为显式应用程序ID进行操作。

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

如果他们再次改变主意会把这部分包括在内:

所有其他应用程序ID都需要会员中心维护人员的协助 – 如果您不使用通配符应用程序ID,则应联系iOS成员中心维护人员寻求帮助。 以下是您可以使用的步骤:

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

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