应用程序标识符权限问题导致应用安装失败。

345
我无法安装watchOS 2 WatchKit应用程序,因为存在application-identifier授权问题。这是在开启功能选项卡中的App Groups后发生的。
完整错误信息:
应用程序安装失败 此应用程序的application-identifier授权与已安装应用程序不匹配。这些值必须匹配才能允许升级。

Screenshot 1

这是在物理设备上以调试模式运行应用程序。仅运行iOS应用程序没有问题。
我已经再次关闭了应用组,并删除了添加的许可文件,但是出现了相同的错误。

你找到解决方法了吗? - prasad1250
1
是的,@john-nesbitt的答案解决了问题。 - Ric Santos
1
关于为什么会发生这种情况(列出可能有帮助的原因),在我的情况下,是由于开发者账户更改引起的。在账户A上安装后,尝试在切换到账户B后运行。(项目中没有授权文件)。 - bauerMusic
先查看第二个答案,它更全面且不会导致数据丢失。 - arcady bob
一个应用程序有一个应用名称+bundleId。如果您使用相同的应用程序名称,但具有不同的bundle id,则会出现此错误。这就是我得到它的方式!幸运的是,解决方案很简单。要么使用旧的bundleId。要么删除旧应用程序,以便新的应用程序名称+bundle-id可以一起工作。至于为什么不能只重新安装,使用旧的应用程序名称-新的bundleId,我想授权可能存储在其他地方,您需要以某种方式将该授权从设备中删除。只有这样,您才能使用不同的bundleId安装应用程序。 - mfaani
37个回答

864

我有一个iPhone应用程序的问题,使用以下步骤解决了它。

  • 连接您的设备,并打开Xcode,选择“Window-> Devices”
  • 在弹出窗口的左选项卡中,选择您的问题设备
  • 在右侧的详细面板中,从“已安装的应用程序”列表中删除有问题的应用程序。

完成后,我的应用程序可以成功重建并启动。由于您的应用程序是watchOS应用程序,我不确定您是否会得到相同的结果,但值得一试。


67
这将删除应用程序及其所有内容。如果可能的话,我需要升级而不会失去所有数据。 - Robert Gummesson
73
所以你删掉了这个应用。 - railwayparade
8
我的应用程序没有显示在Windows->设备列表中,但我通过在手机上按住图标并删除它来解决了这个问题。感谢John。 - Steve A
18
我希望测试应用程序迁移到新版本,但如果我从设备中删除现有的应用程序(AppStore 版本),就无法做到这一点。请帮我翻译。 - mixtly87
3
可以,但我每次使用同一设备的不同团队成员时都需要这样做,这很烦人,因此删除不是一个好的解决方案! - v01pe
显示剩余9条评论

115

我遇到了这个问题,只有通过删除和重新安装应用程序才能解决它(像一些人建议的那样搞 provisioning profiles 并没有帮助)。

但是,我并没有失去我的现有测试数据。以下是如何解决此问题的方法,供将来遇到此问题的任何人参考:

  1. 删除应用程序之前,打开 Xcode 的“设备”窗口(按 cmd-shift-2)。
  2. 选择您的设备,然后在“已安装应用程序”列表中找到您的应用程序。
  3. 点击齿轮图标,然后选择“下载容器...”。这将复制所有应用程序的数据到您的 Mac 上。暂时将其保存在某个地方。
  4. 从 Xcode 中删除该应用程序并重新安装它。从 Xcode 中终止应用程序(单击停止按钮),以使其不再运行。
  5. 回到“设备”窗口,点击齿轮图标,然后选择“替换容器...”。选择您在步骤 3 中下载到 Mac 上的数据。

Xcode 将会恢复之前保存的应用程序数据。现在您已经恢复了旧的测试数据,应用程序应该可以运行。


3
在使用Xcode 8中的“自动配置”功能时,这特别有效。 - Steve Madsen
3
我真希望在使用答案之前读过这个。那么状态数据就会被保留下来。(请参见我的上面的评论)。 - Tim Maher-De Troyer
3
这应该是被选中的答案。 - galactikuh
4
如果你不想丢失数据,那么“100%正确的答案”应该被接受为答案。 - arcady bob
我有同样的情况,但我的有用数据存储在Userdefaults中,我们能够恢复它吗?感谢您的帮助。 - Rahish
显示剩余3条评论

32
当您的AppID前缀与之前安装的应用程序的前缀不匹配时,您将会收到这个错误。如果您的应用程序已经在应用商店中存在,则无法提交更新,除非恢复原始的AppID前缀或与苹果联系。
处理此问题的苹果指南:https://developer.apple.com/library/content/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_NOT_MATCH_THE_INSTALLED_APP 如果您没有意图更改AppID前缀,则Xcode可能会使用错误的配置文件来签名您的应用程序。
如果您确实要更改AppID前缀(因为该应用程序已转移到新开发人员手中,或者您正在从旧版2011年之前的AppID迁移),则必须联系苹果,以将现有的AppID迁移到一个新前缀。
同时,您还必须向您的应用程序添加previous-application-identifiers许可证,并列出所有以旧前缀命名的先前AppIDs。您还必须要求苹果为您生成包含previous-application-identifiers许可证的配置文件。

2
我的通配符配置文件已经过期,我错误地创建了一个特定于应用程序的配置文件。在阅读了您的帖子后,我创建了一个新的通配符配置文件并使用它。效果非常好。您的帖子是最准确的,应该被接受为答案。对于我们许多人来说,删除应用程序并丢失数据不是一个好选择。谢谢! - neoscribe
2
previous-application-identifiers 不再需要。调试版本将无法安装,但通过 Testflight 的生产版本将自动更新。我联系了苹果关于这个标识符,他们对这个旧机制一无所知。 - heyfrank

31

从您的iPhone中删除任何先前版本的应用程序,然后再次进行清理->构建和运行。您的应用程序应该在您的设备上顺利运行。

另外,请确保在尝试直接在设备上运行项目时,未在项目设置中选择发行证书。


18

我没有删除应用程序就解决了这个问题

在 Xcode 中打开项目。 选择 Project -> Build Settings -> Code Signing -> Provisioning Profiles(下拉菜单) 它可能被设置为自动并选择了错误的配置文件。打开下拉菜单并选择正确的配置文件,然后重新运行应用程序。


我最初尝试删除并重新安装应用程序,但没有起作用。然后我向下滚动并看到了这个答案。构建仅在自动化UI测试中出现此错误,而不是常规构建,并且结果发现为常规构建选择了正确的配置文件,但未为自动化UI测试构建选择。因此,更新后解决了问题。 - auspicious99

6

我曾经也遇到过同样的问题,被卡了好几分钟,后来搜寻了一下,发现最简单的解决方案是手动从设备上删除之前安装的应用程序,然后再尝试从Xcode中运行该应用程序。

希望这能对你有所帮助。祝你一切顺利...


是的!如果应用被卸载,那么你必须手动删除它 - 在Xcode中找不到它。 - Olof_t

5

解释

对于我来说,这个问题是因为我使用的是与我在iPhone上安装应用程序的帐户不同的帐户登录的。

解决方案

只需从iPhone中删除应用程序,并从Xcode再次运行它即可。


4

步骤

  1. 将设备连接,并打开Xcode,选择菜单栏中的“窗口(Window)”->“设备(Devices)”
  2. 现在选择应用程序并使用设置图标下载容器
  3. 删除应用程序
  4. 再次使用Xcode安装应用程序
  5. 从Xcode中停止应用程序
  6. 转到“窗口(Window)”->“设备(Device)”,选择应用程序并替换之前备份的容器

容器步骤并非必要,但如果您希望维护数据,则很好。谢谢。 - Awesomeness

3

2
我尝试了一些方法,比如更新/创建新的预配配置文件,在苹果会员中心和项目中修复授权,但在我的情况下,我只需要删除应用程序并重新运行它。
注意:它说“...与安装的应用程序不匹配”。
我想这对我来说发生了,因为我们添加了一个新的应用扩展,可能存在一些与目标相关的迁移问题?不确定但无论如何。

是的,在您的设备中删除已安装的应用程序,然后从Xcode重新运行。我遇到了这个问题,因为我在Xcode中添加了一个目标。 - Syed Asad Ali

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