警告 ITMS-9000: "可能丢失钥匙串访问权限"

69

在上传应用程序的新版本时,我收到了以下警告:

警告 ITMS-9000: "潜在的密钥串访问丢失。先前版本的软件具有应用标识符值 ['52T2NMS37N.com.(my-app-id)'],而要提交的新版本的软件具有应用标识符为['FCGA72C62G.com.(my-app-id)']。这将导致密钥串访问丢失。欲了解更多信息,请参阅 (url)"。

问题可能是因为应用程序被转移到另一个帐户。

构建已上传并带有警告,但这意味着什么?


2
好的解释在这里: https://dev59.com/MWAg5IYBdhLWcg3wQ5Il#23877303 - deko
可能是重复的问题:应用标识符授权值已更改? - Sven
7个回答

72

来自苹果文件档案库,关于解决潜在的密钥串访问丢失警告

潜在的密钥串访问丢失。上一个软件版本的应用标识值为“A1B2C3D4E5.com.company.app”,而正在提交的新软件版本的应用标识为“5E4D3C2B1A.com.company.app”。这将导致密钥串访问丢失。

注意:这是警告而非错误。您可以选择忽略此警告并继续提交版本,但是此文档应用于确定是否可以安全地忽略此警告。 此警告表示待提交版本的应用ID前缀与App Store中已发布应用的应用ID前缀不同。

重要提示:唯一可以安全忽略此警告的应用是那些不使用依赖于应用ID前缀的技术(如密钥串访问、Handoff和UIPasteboard共享)的应用程序。

注意:正在将其App ID从任意Bundle Seed ID迁移到更现代的Team ID的应用程序应该预期会收到此警告,并继续提交版本。

对于使用依赖于应用ID前缀技术的应用程序,不应忽略此警告。潜在的密钥串访问丢失警告表明该应用程序使用了错误的配置文件进行代码签名。

解决问题的方法:

  1. 您必须在Certs IDs&Profiles网站上查找或重新创建一个使用正确App ID前缀的配置文件。
  2. 单击要确定前缀是否正确的配置文件上的“编辑”。
  3. 单击“下载”并将配置文件保存到磁盘中。
  4. 可选地,使用终端命令在已下载的配置文件中双重检查App ID前缀。具体操作请参考:如何检查与我的配置文件关联的权限?
  5. 将配置文件拖放到Dock上的Xcode图标上安装它。
  6. 重新提交应用程序,并使用新恢复的与正确前缀相关联的配置文件对其进行代码签名。

"Keychain Access" 是指 Keychain Services 参考中的所有功能。


8
你好,我也遇到了这个错误。我从朋友那里转移了一个应用程序,并尝试更新构建版本。我创建了新的配置文件,但仍然遇到相同的错误。我漏掉了什么吗? - vinbhai4u
回答非常好,详细并且对我很有帮助。 - GeneCode
对我来说,这不是解决方案。我必须找到与应用程序的原始版本相关联的应用程序ID,然后将其链接到活动分发配置文件。 - Nicolai Harbo
所有这些步骤之后还是发生了。 - jose920405

8

我认为前缀与Apple Id有关。当我将我的应用迁移到其他Apple Id时,重新创建应用ID时,会创建一个新的前缀ID。


1
https://developer.apple.com/forums/thread/693279更多相关内容。 - Nike Kov

6
当我尝试提交应用程序更新时,出现了这个错误。我通过将“Provisioning Profile”设置为特定的配置文件,而不是使用一些默认的XC配置文件的“自动”设置,使其正常工作。
选择 Provisioning Profile: Select Provisioning Profile

5

1
这是我问题的答案。谢谢。 对于任何转移应用程序的人,您应该实现一种机制来从钥匙串中提取旧数据并将其保存在其他地方,然后转移应用程序,最后再将数据从“某处”保存到钥匙串中。我知道“某处”不像钥匙串那样安全,但我想这是解决此问题的唯一方法。 - Cihad Turhan

3
我遇到了相同的问题,最终通过删除位于 ~/Library/MobileDevice/Provisioning Profiles 目录下的临时配置文件并从开发人员配置文件中下载新的配置文件来解决问题。
请按照以下步骤操作: 1. 打开Finder,在“前往”菜单中选择“前往文件夹”,或在Mac OS X桌面或Finder窗口上按Command+Shift+G。 2. 输入路径 ~/Library/MobileDevice/Provisioning Profiles。 3. 删除错误Bundle ID的配置文件。如果您点击文件,MacOS X会显示详细信息,您可以验证Bundle ID。

3

这只是一个警告,并非问题。当我遇到这个错误时,我的构建版本已经发布到了测试飞行中。

场景 - 当你将应用程序从一个帐户转移到另一个帐户,然后发布一个构建版本到应用商店时,你会收到这个错误。

输入图像描述


你修好了吗? - Gennady Sabirovsky
是的,我做了。这不是一个错误,只是一个警告。一旦你遇到这个错误,你仍然会在测试飞行中看到更新。 - Quick learner

0

我也遇到了同样的警告。在我的情况下,我有一个通配符应用程序标识符。

首先,我找到了这个appID '5E4D3C2B1A.com.company.app'并将其删除。然后我创建了新的appID,但将teamID更改为'A1B2C3D4E5'。结果,我得到了一个正确的appID,如'A1B2C3D4E5.com.company.app'。 然后我重新生成了所有的配置文件,一切都运行良好。应用程序在生产中没有奇怪的行为。

但是,请注意,我使用了通配符,我不确定明确的应用程序标识符是否会出现问题。


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