ChatGPT解决这个技术问题 Extra ChatGPT

由于应用程序标识符授权,应用程序安装失败

由于应用程序标识符授权,我无法安装 watchOS 2 WatchKit 应用程序。这发生在打开“功能”选项卡中的“应用程序组”之后。

完整错误:

应用程序安装失败 此应用程序的应用程序标识符权利与已安装应用程序的权利不匹配。这些值必须匹配才能允许升级。

https://i.stack.imgur.com/tHqUy.png

这是在物理设备上以调试模式运行应用程序。仅运行 iOS 应用程序可以正常工作。

我再次关闭了应用程序组并删除了添加的权利文件,但同样的错误。

你能找到解决办法吗?
是的,@john-nesbitt 的回答成功了
至于“为什么”会发生(可能有助于列出),就我而言,是在开发人员帐户更改时发生的。安装在账户 A 上,并在更改为账户 B 后尝试运行。(我在项目中没有授权文件)。
首先查看第二个答案,它更全面,不会导致数据丢失。

J
John Nesbitt

我在使用 iPhone 应用程序时遇到了这个问题,并使用以下步骤修复了它。

连接设备并打开 Xcode,选择 Window->Devices

在弹出窗口的左侧选项卡中,选择您的问题设备

在右侧的详细信息面板中,从“已安装的应用程序”列表中删除有问题的应用程序。

在我这样做之后,我的应用程序重建并启动得很好。由于您的应用是 watchOS 应用,我不确定您是否会得到相同的结果,但值得一试。


这将删除应用程序及其所有内容。如果可能,我需要升级并且不要在此过程中丢失所有数据。
所以你删除了应用程序
我的应用程序未显示在 Windows-> 设备列表中,但我从手机中删除了它(通过按住图标)解决了问题。谢谢约翰。
我想测试应用程序迁移到新版本,如果我从设备中删除现有应用程序(AppStore 版本),我将无法执行此操作。
改为这样做。 1) 拿起你的 iOS 设备。 2) 找到一大片水域。 3) 将第 1 步中的 iOS 设备扔到第 2 步中的大水体中。现在购买另一台 iOS 设备,进行设置,应用程序将重新构建并正常启动。
T
Tom Harrington

我遇到了这个问题,如果不删除并重新安装应用程序就无法解决它(正如这里的一些人建议的那样,弄乱配置文件并没有帮助)。

但是,我并没有丢失我现有的测试数据。对于将来遇到此问题的任何人,以下是如何做到这一点:

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

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


这在使用 Xcode 8 中的“自动配置”功能时特别有效。
我真的希望我在使用答案之前已经阅读过这篇文章。然后状态数据将被保留。 (见我上面的评论)。
这应该是选定的答案。
如果您不想丢失您的数据,100% 的正确答案。应该被接受的答案。
我有同样的情况,但我的有用数据在 Userdefaults 我们可以恢复吗?帮助表示赞赏
n
n.by.n

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

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


D
Darren

当您的 AppID 前缀与先前安装的应用程序的前缀不匹配时,您将收到此错误。如果您的应用程序已经在 App Store 中,您将无法在不恢复原始 AppID 前缀或联系 Apple 的情况下提交更新。

Apple 处理此问题的说明: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 迁移),您必须联系 Apple 以将现有 AppID 迁移到新前缀。

您还必须将 previous-application-identifiers 权利添加到您的应用程序,列出所有以前的 AppID(带有旧前缀)。您必须要求 Apple 为您生成包含 previous-application-identifiers 权利的配置文件。


我用于开发的通配符配置文件已过期,并且我错误地创建了一个特定于应用程序的配置文件。阅读您的帖子后,我创建了一个新的通配符配置文件并使用它。像魅力一样工作。您的帖子是最准确的帖子,应该是公认的答案。对于我们许多人来说,删除应用程序并丢失数据并不是一个好的选择。谢谢!
D
Dustin

我在不删除应用程序的情况下解决了这个问题

在 xcode 中打开项目。项目 -> 构建设置 -> 代码签名 -> 供应配置文件(下拉)它可能设置为自动并且选择了错误的配置文件。打开下拉菜单并选择正确的,然后重新运行该应用程序。


我起初尝试删除并重新安装该应用程序。没用。然后我向下滚动并看到了这个答案。构建失败并仅针对自动化 UItests 而不是常规构建时出现此错误,事实证明为常规构建选择了正确的配置文件,而不是为自动化 UItests 构建选择了正确的配置文件。所以,更新解决了这个问题..
K
Kunal Gupta

我遇到了同样的问题并被卡住了几分钟,经过搜索,我发现最简单的解决方案是手动从您的设备中删除以前安装的应用程序,然后尝试再次从 Xcode 运行该应用程序。

希望它可以帮助你。一切顺利...


是的!如果应用程序已卸载,则您必须手动将其删除 - 在 Xcode 中找不到。
K
Kirit Vaghela

脚步

连接设备并打开 Xcode,选择 Window->Devices 现在选择应用程序并使用设置图标下载容器 删除应用程序 使用 Xcode Stop 从 Xcode 再次安装应用程序 转到 Window->Device 并选择应用程序并替换容器这是从以前的应用程序备份


如果您希望维护数据,容器步骤不是必需的,但很好。谢谢你。
E
Essam Fahmi

解释

对我来说,发生此问题是因为我使用的帐户与我在 iPhone 上安装应用程序时使用的帐户不同。

解决方案

只需从 iPhone 中删除该应用程序,然后从 Xcode 中再次运行它。


w
wzzhu

当您切换不同的开发者帐户时,这可能是由 App ID 前缀引起的。有关 Apple 的支持,请参阅 https://developer.apple.com/library/content/technotes/tn2311/_index.html


s
staticVoidMan

我自己尝试了一些事情,比如更新/制作新的配置文件,修复 Apple 会员中心和项目中的权利,但就我而言,我只需要删除应用程序并重新运行它。

o_O

此应用程序的应用程序标识符权利与已安装应用程序的权利不匹配。

注意:它说“...与已安装的应用程序不匹配”

我想这发生在我身上是因为我们添加了一个新的应用程序扩展,并且一定存在一些与目标相关的迁移问题?不确定但无论如何


是的,删除设备中已安装的应用程序并从 Xcode 重新运行。我遇到了这个问题,因为我在 Xcode 中添加了一个目标。
a
arinmorf

我发现我不小心将配置文件更改为其中包含通配符。

即,它从 com.companyname.appnickname 变为 com.companyname。*

我用正确命名的全名创建了一个新的配置文件,下载它,将 Target->build settings->provisioning profile 设置为该新配置文件,重新启动 xcode,从 xcode 收到一个奇怪的错误(这似乎让我的各种应用程序开发人员感到困惑登录),再次重新启动xcode,它工作!

我不想删除现有的应用程序,因为我试图测试当用户将他们的应用程序升级到较新版本时会发生什么,所以我安装了应用商店版本,然后使用较新版本运行我的 xcode(它起作用比如在不删除任何用户数据的情况下“升级”应用程序)。


您只需要确保您使用的是最初构建应用程序时使用的相同配置文件。
F
F_Boris

我遇到了同样的错误,我通过将 Bundle Identifier 更改为新的东西来解决它。之后,它可以毫无问题地构建项目。

我的步骤:

打开 Xcode

转到常规选项卡

寻找身份

将 Bundle Identifier 更改为新的东西。

https://i.stack.imgur.com/P0ClZ.jpg


如果您想测试应用更新,这不起作用。
通过更改捆绑 ID,您有效地创建了一个全新的应用程序。
R
Rawand Saeed

我遇到过同样的问题。 bundle.identifier 和项目名称必须相同。至少那是我的问题。


o
oOEric

卸载主要的 iPhone 应用程序、Watch 应用程序并再次构建它们可以解决问题。


P
Piotr Farbiszewski

在按照 https://forums.developer.apple.com/thread/17948 将手表恢复为出厂默认设置之前,我遇到了同样的错误

“显然,如果您拥有现有的 WatchOS 1 应用程序并尝试将其更新到 WatchOS 2,则捆绑标识符会更改并导致此错误。如果您更新手表,如果您在更新该应用程序之前安装了 WatchOS1 应用程序,则需要重置它WatchOS2。”


我还必须将手表恢复为出厂默认设置。已尝试所有其他相关建议,但无济于事。还重新生成了所有配置文件以确保它们与权利一致。我的情况就像这里描述的那样:有一个现有的 WatchOS 1 应用程序,我正试图更新到 WatchOS 2。
I
Ispas Claudiu

尽管我遵循了一些合乎逻辑的步骤:卸载应用程序,重建项目,但唯一对我有用的解决方案是:重新启动 XCode。 (XCode 8.1)


K
Kelsey

当我尝试在临时构建之上安装时发生了这种情况。


h
hoptown

在对此问题的大多数回复中,原始提问者提出的一个关键方面被忽略了。需要在不删除现有安装的情况下安装该应用程序。就我而言,该应用程序使用了一个 SQLite 数据库,该数据库为用户存储了大量数据。显然,如果您删除应用程序,那么您会删除数据。一个允许我以与用户更新它相同的方式对其进行测试的解决方案是必须的。

就我而言,问题是 Xcode 使用了 Xcode 自动生成的配置文件。这可能是因为我有一台新计算机并且没有传输分发配置文件。更不用说,我已经快 2 年没有更新应用程序了。因此,我原来的配置文件(其中包含权利应用程序标识符)早已不复存在。解决方案:在 Xcode 首选项-> 帐户-> 选择适当的 Apple ID-> 查看详细信息-> 在 Provisioning Profiles 下,右键单击 Xcode 为该应用程序生成的配置文件(其前缀为 XC iOS),然后选择 Move to Trash .

https://i.stack.imgur.com/FnUYv.jpg

在开发者网站上,使用您的应用 ID 创建一个新的分发配置文件。下载新的配置文件,双击,Xcode 应该会自动安装它。相反,您可以返回到 Xcode 中列出的配置文件,然后点击新创建的配置文件旁边的下载按钮。构建应用程序并尝试再次运行。顺便说一句,我的 Xcode 设置为自动管理代码签名,除了这个问题之外,它的效果很好。


u
user1105951

TLDR - 从设备中删除应用程序并再次运行。

就我而言: 1. 我在 iPhone 设备上编译并运行该应用程序。 2.我在设置中打开功能并打开iCloud 3.然后我再次尝试运行应用程序,繁荣,错误:“应用程序安装失败此应用程序的应用程序标识符权利与已安装应用程序的权利不匹配。这些值必须匹配才能允许升级。

4.然后我从 iPhone 删除了应用程序(在我阅读了这里的答案之后) 5.一切正常


J
Juan Carlos Ospina Gonzalez

对于可能属于多个团队的人来说,这可能是您的问题:

如果应用程序的 bundle id 硬编码在 Info.plist 中,那么 Xcode 可能会感到困惑并大发雷霆。

修理:

确保捆绑包 ID 设置为:$(PRODUCT_BUNDLE_IDENTIFIER)


佚名

接受的答案对我不起作用。为了让它工作,我不得不将 Apple Watch 重置为最后一个可用的备份。


R
Ronald Hofmann

我从 5s 转到 6s 后收到此错误。我从旧 iPhone 的备份中恢复了新的 6s。因此,在新 iPhone 上安装了旧应用程序。

旧应用没有出现在6s“已安装应用”列表中!我从 6s 中手动删除了这个旧应用程序,一切都很好。


g
gollumullog

我遇到了这个问题,因为我在另一台机器上关闭了代码签名的情况下构建到手机,因此您需要先从手机上卸载应用程序,然后再安装/构建到带有代码签名的手机。


R
RedBassett

通过从设备中删除以前的应用程序可以轻松解决此问题。并重新开始重新安装。这对我来说很好。


I
Irfan

我今天遇到了同样的问题,并通过更改之前安装在我 iPhone 上的应用程序的显示名称和捆绑标识符来解决它。脚步:

Xcode -> General tab -> Find Identity -> Change Bundle Identifier

所以,现在我有两个相同的应用程序具有相同的功能,但有两个不同的名称和身份。


K
Keuha

就我而言,这是因为证书。

因为我自己签署应用程序的证书不是开发团队(新员工)的一部分,所以不允许将应用程序从 App Store 升级到新版本。

因此,如果您遇到这种情况并且您无法获得“好”证书,只需克隆 git appStore 版本,打开两个 Xcode 项目,编译旧版本,根据需要更新设置,然后编译新的你就完成了。

有点肮脏和棘手,但我希望它可以帮助某人。


A
Alyoshak

我的问题是 App ID 与用于创建配置文件的证书相结合。我的配置文件都不起作用,因为它们都不是“合格的”(使用与 App ID 匹配的证书创建)。我已经将开发转移到一台新机器上,所以也许这是更深层的原因。无论如何,我必须创建一个新证书,然后使用该证书创建新的配置文件,在创建它们时要小心选择正确的 App ID。祝你好运。


N
NEOline

上面的答案都不适合我。我的问题:我已经从 Testflight 安装了一个应用程序版本,所以我刚刚删除了旧应用程序和 Testflight 版本,然后又可以正常工作了。


V
Vishal Chaudhry

接受来自开发者网站和 iTunes Connect 网站的未决协议并在 X-Code 中重新打开项目为我解决了这种情况。


m
marvios

对我来说,这发生在更新到 XCode 11 之后,就像其他人所说的那样,这是一个签名问题。为我解决的问题是转到开发人员门户>证书和标识符编辑您正在使用的配置文件

List of certificates Screenshot

您会看到有 XCode 11 的证书(如屏幕截图所示)只需勾选该框,重新下载配置文件,并使用新配置文件更新您的项目签名。