我想了解AppID的第一部分iOS应用程序的角色。 这部分以前被称为“捆绑种子ID”,但现在通常称为AppID前缀。在更新之间更改AppID前缀是否安全?
前段时间(iOS 5?),Apple对其门户和文档进行了一些更改,并开始建议将“Team ID”(每个开发人员帐户唯一)用作AppID前缀。对于使用新应用程序的新开发人员来说,这很简单直接。
但是,处理与AppID前缀有关的现有应用程序的最佳做法是什么? 我知道无法在两个应用版本之间更改BundleID(= AppID的第二部分),但是否可以更改应用版本之间的前缀?
请注意,我并不是指替换“通配符AppID”,例如, ABC1234567。*,使用相同的前缀(例如, ABC1234567.com.mycompany.myapp。有很多关于这方面的信息(尽管它大部分都是过时的)。我在考虑更改完整的AppID,例如ABC1234567.com.mycompany.myapp,通过用我的团队ID替换前缀来获得现有的应用,例如DEF7654321.com.mycompany.myapp。
我想我已经在某处读过,应该可以更改现有应用程序的前缀,除非应用程序使用钥匙串存储数据的特殊情况除外。如果这是真的,那么处理现有应用程序前缀的最简单方法就是在发布下一次更新时迁移到新的团队ID。当我所有的应用程序都被迁移后,我可以继续使用团队ID(正如苹果推荐的新应用程序一样),最后忘掉所有这些混乱。 任何人都可以证实这一点?
如果您可以更多地了解AppID前缀的概念以及它在iOS设备上的实际使用情况(除了我已经知道的钥匙串外),我会很高兴如果您可以写一条评论。也许我们可以通过添加来自不同来源的零碎件来充分理解这一点。可悲的是,苹果的文档在这个领域非常薄弱。
(还有一个类似的问题:Can I change the Bundle Identifier in my app after it's been approved?但是主要关注的是BundleID,即AppID的第二部分,所以这不是重复的,即使有些答案和评论触及了这个主题。 )
关于AppID前缀是否用于控制对钥匙串访问的任何其他目的的问题,我注意到了UIPasteboard引用文档中的更改。对于iOS 7:对于“pasteboardWithName:create:”方法,现在有一个说明,指出两个应用程序必须具有“相同的团队ID”才能共享粘贴板。我怀疑这可能是一个错字,并且它实际上是指AppID前缀。很难相信iOS在运行时已经对TeamID有任何直接的了解,除了将TeamID用作AppID前缀的情况。 – Magnus