应用程序标识符权利值已更改?

提交我的应用程序到应用程序商店时,我只是得到了这个警告,它只是警告,而不是错误。 此应用程序从另一个开发人员帐户转移到我的帐户之前,所以应用程序ID的前缀更改..我认为这应该是不可避免的,但因为我得到了这个警告,它实际上是什么影响我的应用程序? 什么钥匙串访问会丢失?

错误

您是否已经将应用程序从另一个开发者帐户转移到您的帐户? 以前的configurationID显然会有所不同。

更新 – 澄清

我注意到,这个答案得到了很多的意见,所以我只是编辑它,以包括我从下面的评论进一步的解释。

基本上,您的应用程序的以前版本将不再能够访问钥匙串,以便保存安全的string,如密码(如果它包含此function)。 这是因为您已经将您的应用程序从以前的帐户转移到了新的分配/供应configuration文件中,因此它所用的分配/供应configuration文件包含的ID与您在新的分配/供应configuration文件中使用的ID不同。

然而,使用最新的分发/供应configuration文件签名的任何新版本的应用程序将能够正常访问钥匙串,以便在需要此function时保存安全数据,因为它们是使用包含最新版本的分发/供应configuration文件该应用的应用ID。

该警告通知您,您更新的应用程序将无法访问以前保存在钥匙串中的项目。 旧版本的应用程序仍然可以访问和存储钥匙串中的项目,就像新版本一样。 但是这两个版本不能共享钥匙链中的信息。

总之,一旦用户更新到新版本,保存在钥匙串中的所有数据都将丢失。 存储在UIPasteboard中的所有信息也将丢失。

你可以看到这个消息,如果:

  • 该应用程序已转移到您的帐户,您正在更新它的第一次。 在这种情况下,你可以做任何事情来防止警告(和副作用)。

  • 您的应用在2011年6月之前已添加到iTunes Connect,并且您最近更新了该应用使用的configuration文件。 您的旧调配configuration文件使用通配符(*)应用程序ID,新configuration文件现在使用特定的应用程序ID,或者相反(不太可能)。 在后面的情况下,您可以切换回来并避免警告(在Xcode中select正确的configuration文件)。 在另一种情况下,您的应用程序可能需要访问诸如游戏中心,推送通知(或任何通配符应用程序ID不会让您使用)的服务,并且您无法避免此警告。

如果您需要更多详细信息,则警告与App ID前缀由Apple归因并且无法更改的事实相关。 检查Apple的“证书,标识符和configuration文件”页面( https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action – 您需要login)中的“应用程序ID”部分,按下ID并查看“前缀”字段。 您也可以查看Apple的技术说明2311 https://developer.apple.com/library/ios/technotes/tn2311/_index.html

最后,您可以通过更改供应configuration文件的“钥匙串访问组”(keychain-access-groups)字段来避免此警告。 这不会工作,因为苹果不会让你有不同的App ID和Keychain访问组的前缀。

从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进行更新时,它会失败,并在设备控制台发生错误,如技术说明中所述:“升级的应用程序标识符权限string[….]与已安装的应用程序的标识符string[…]不匹配]; 拒绝升级“。试图通过iTunes更新似乎失败了。

我希望答案只是“这个错误只是表明Xcode已经select了错误的configuration文件,”在https://developer.apple.com/library/ios/technotes/tn2318/_index.html#/中进行了validation/ apple_ref / doc / uid / DTS40013777-CH1-TNTAG65 。 但是我上次提交了许多Xcode版本的应用程序,find合适的应用程序可能是一个挑战。

注意措辞“ Xcodeselect了错误的configuration文件”; 要确保它select了认为您select的configuration文件,请单击归档validation对话框中所选configuration文件的截断名称旁边的箭头。 要仔细检查,请向App Store提交一个已知错误(我无意中使用了一个丢失的图标),以便查看是否显示警告。