当我提交应用到应用商店时,我收到了这个警告,仅仅是一个警告而不是错误。在此之前,该应用从另一开发者的账户转移到了我的账户,因此App ID的前缀已更改.. 我认为这很难避免,但既然我收到了这个警告,那么它实际上会影响我的应用程序吗?哪些密钥链访问将丢失?
当我提交应用到应用商店时,我收到了这个警告,仅仅是一个警告而不是错误。在此之前,该应用从另一开发者的账户转移到了我的账户,因此App ID的前缀已更改.. 我认为这很难避免,但既然我收到了这个警告,那么它实际上会影响我的应用程序吗?哪些密钥链访问将丢失?
您是否将应用程序从其他开发者帐户转移到了自己的帐户?显然,之前的配置ID将不同。
更新-澄清
我注意到这个答案正在获得很多浏览量,所以我将编辑它并包括我的进一步解释(来自下面的评论)。
基本上,您的应用程序的先前版本将无法访问钥匙串,以保存安全字符串(例如密码),因为它使用的分配/配置文件包含与您在新分配/配置文件中使用的 ID 不同。这是因为您已将应用程序从以前的帐户转移到新账户。
但是,任何使用最新分配/配置文件签名的新版本的应用程序,如果需要此功能,则仍将能够像往常一样访问钥匙串以保存安全数据,因为它们使用的分配/配置文件包含该应用程序的最新App ID。
这个警告通知您,您的更新后的应用程序将无法访问以前保存在钥匙串中的项目。旧版本的应用程序仍然可以像新版本一样访问和存储钥匙串中的项目。但是,两个版本无法共享钥匙串中的信息。
总之,一旦用户更新到新版本,所有保存在钥匙串中的数据都将丢失。所有存储在UIPasteboard中的信息也将丢失。
如果出现以下情况,您将看到此消息:
该应用程序已转移到您的帐户,并且您正在首次更新它。在这种情况下,您无法防止警告(和副作用)发生。
您的应用程序已添加到iTunes Connect之前的2011年6月,并且最近更新了应用程序使用的配置文件。您的旧配置文件可能正在使用通配符(*) App ID,而新配置文件现在正在使用特定的App ID,或者相反(较少可能)。在后一种情况下,您可以切换回来并避免警告(在Xcode中选择正确的配置文件)。在另一种情况下,您的应用程序需要访问Game Center、推送通知(或任何通配符App ID无法让您使用的服务),您无法避免警告。
如果您想了解更多详细信息,警告与Apple分配的App ID前缀无法更改有关。请查看Apple的“证书、标识符和配置文件”页面中的“App IDs”部分(https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action - 您需要登录),点击一个ID并查看“前缀”字段。您还可以查看苹果的技术说明2311 https://developer.apple.com/library/ios/technotes/tn2311/_index.html
最后,您可能会认为通过更改您的配置文件的Keychain Access Groups(keychain-access-groups)字段,可以避免警告。但这是行不通的,因为苹果不允许您在App ID和Keychain Access Groups中具有不同的前缀。
由于iOS 8.1.3的更严格安全性,这比警告所示的要严重得多;请参见https://developer.apple.com/library/ios/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_NOT_MATCH_THE_INSTALLED_APP。似乎不匹配会导致无法升级到新版本。当我尝试通过Xcode更新时,它会在设备控制台上出现错误,就像技术说明中的那样:“Upgrade's application-identifier entitlement string [....] does not match installed application's application-identifier string [....]; rejecting upgrade.” 尝试通过iTunes更新似乎会默默失败。
我希望答案很简单,即“此错误只是Xcode选择了错误的配置文件”,并在https://developer.apple.com/library/ios/technotes/tn2318/_index.html#//apple_ref/doc/uid/DTS40013777-CH1-TNTAG65中得到验证。但我上次提交应用程序时使用的是旧版本的Xcode,因此找到正确的版本可能会有一些挑战。
请注意短语“Xcode选择了错误的配置文件”;为确保它选择了您认为选择的配置文件,请单击存档验证对话框中所选配置文件名称缩写旁边的箭头。为了进行双重检查,请提交一个已知错误的应用程序(我不小心使用了一个丢失的图标),以便查看是否出现警告。