应用标识符授权值已更改?

28

当我提交应用到应用商店时,我收到了这个警告,仅仅是一个警告而不是错误。在此之前,该应用从另一开发者的账户转移到了我的账户,因此App ID的前缀已更改.. 我认为这很难避免,但既然我收到了这个警告,那么它实际上会影响我的应用程序吗?哪些密钥链访问将丢失?

error


1
我遇到了同样的问题...有解决方案吗? - hardik hadwani
@hardikhadwani:我也遇到了同样的问题。你有找到任何解决方法吗? - Manthan
我在这里回答了:[https://dev59.com/O18e5IYBdhLWcg3wJXvm#61608492] - Taras
3个回答

39

您是否将应用程序从其他开发者帐户转移到了自己的帐户?显然,之前的配置ID将不同。

更新-澄清

我注意到这个答案正在获得很多浏览量,所以我将编辑它并包括我的进一步解释(来自下面的评论)。

基本上,您的应用程序的先前版本将无法访问钥匙串,以保存安全字符串(例如密码),因为它使用的分配/配置文件包含与您在新分配/配置文件中使用的 ID 不同。这是因为您已将应用程序从以前的帐户转移到新账户。

但是,任何使用最新分配/配置文件签名的新版本的应用程序,如果需要此功能,则仍将能够像往常一样访问钥匙串以保存安全数据,因为它们使用的分配/配置文件包含该应用程序的最新App ID。


6
基本上,用于分发您的应用程序版本的配置文件的捆绑标识符与上一个应用程序所有者不同。因此,如果您的应用程序使用iOS Keychain存储安全数据(例如密码),那么失去密钥链访问权限意味着它将无法再这样做。但除此之外,它应该可以正常工作。我和你一样也遇到了同样的问题,因为我的应用程序是从另一个开发者帐户转移到我的新帐户的。 - Supertecnoboff
1
好的,我明白了。谢谢。 - RRN
2
这个问题的确切解决方法是什么? - PeeS
2
我甚至会问:开发人员能否对此警告做些什么? - deko
2
嘿,这解释了很多问题,但我仍然在使用Test Flight时遇到麻烦。新转移的应用程序将无法在用户手动删除App Store版本之前安装在其上。一旦更新版本在App Store上线,这会成为一个问题吗? - gabe.roze
显示剩余11条评论

19

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

总之,一旦用户更新到新版本,所有保存在钥匙串中的数据都将丢失。所有存储在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中具有不同的前缀。


1
这是正确的答案。错误的那个被接受并获得了很多赞,真的很奇怪。 - Cihan Tek

0

由于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选择了错误的配置文件”;为确保它选择了您认为选择的配置文件,请单击存档验证对话框中所选配置文件名称缩写旁边的箭头。为了进行双重检查,请提交一个已知错误的应用程序(我不小心使用了一个丢失的图标),以便查看是否出现警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接