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

Posted

技术标签:

【中文标题】由于应用程序标识符授权,应用程序安装失败【英文标题】:App installation failed due to application-identifier entitlement 【发布时间】:2015-09-20 07:58:37 【问题描述】:

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

完全错误:

应用安装失败

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

这是在物理设备上以调试模式运行应用程序。只运行 ios 应用就可以了。

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

【问题讨论】:

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

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

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

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

【讨论】:

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

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

但是,我并没有丢失我现有的测试数据。以下是针对将来遇到此问题的任何人的方法:

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

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

【讨论】:

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

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

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

【讨论】:

【参考方案4】:

当您的 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 权利。

【讨论】:

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

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

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

【讨论】:

我起初尝试删除并重新安装该应用程序。没用。然后我向下滚动并看到了这个答案。构建失败并仅适用于自动化 UItests 而不是常规构建,结果表明为常规构建而不是自动化 UItests 构建选择了正确的配置文件。所以,更新解决了问题..【参考方案6】:

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

希望对您有所帮助。 万事如意...

【讨论】:

是的!如果应用程序已卸载,那么您必须手动将其删除 - 在 Xcode 中找不到。【参考方案7】:

步骤

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

【讨论】:

容器步骤不是必需的,但如果您希望维护数据,这很好。谢谢。【参考方案8】:

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

【讨论】:

【参考方案9】:

说明

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

解决方案

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

【讨论】:

【参考方案10】:

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

o_O


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

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

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

【讨论】:

是的,删除设备中已安装的应用程序并从 Xcode 重新运行。我遇到了这个问题,因为我在 Xcode 中添加了一个目标。【参考方案11】:

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

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

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

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

【讨论】:

您只需要确保您使用的配置文件与您最初构建应用程序时使用的配置文件相同。【参考方案12】:

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

我的步骤:

打开 Xcode 转到常规选项卡 寻找身份 将 Bundle Identifier 更改为新的。

【讨论】:

如果您想测试应用更新,这不起作用。 通过更改捆绑包 ID,您有效地创建了一个全新的应用程序。【参考方案13】:

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

【讨论】:

【参考方案14】:

卸载主要的 iPhone 应用、Watch 应用并重新构建它们可以解决问题。

【讨论】:

【参考方案15】:

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

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

【讨论】:

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

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

【讨论】:

【参考方案17】:

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

【讨论】:

【参考方案18】:

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

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

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

【讨论】:

【参考方案19】:

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

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

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

【讨论】:

【参考方案20】:

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

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

修复:

确保 bundle id 设置为:

$(PRODUCT_BUNDLE_IDENTIFIER)

【讨论】:

【参考方案21】:

接受的答案对我不起作用。为了让它正常工作,我不得不将 Apple Watch 重置为上次可用的备份。

【讨论】:

【参考方案22】:

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

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

【讨论】:

【参考方案23】:

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

【讨论】:

【参考方案24】:

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

【讨论】:

【参考方案25】:

我今天遇到了同样的问题,只需更改之前安装在我 iPhone 上的应用程序的 显示名称Bundle Identifier 即可解决该问题。 步骤:

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

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

【讨论】:

【参考方案26】:

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

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

所以万一发生这种情况而你无法获得“好”的证书,只需克隆 git appStore 版本,打开两个 Xcode 项目,编译旧版本,根据需要更新设置,编译新的,你就完成了。

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

【讨论】:

【参考方案27】:

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

【讨论】:

【参考方案28】:

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

【讨论】:

【参考方案29】:

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

【讨论】:

【参考方案30】:

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

List of certificates Screenshot

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

【讨论】:

以上是关于由于应用程序标识符授权,应用程序安装失败的主要内容,如果未能解决你的问题,请参考以下文章

PayPal PHP SDK:由于身份验证凭据无效或缺少授权标头,身份验证失败

无法显示网页,错误代码:500 这是怎么回事?应该怎么办?

删除应用扩展后仍然出现应用安装失败错误 - 此应用包含具有非法捆绑标识符的应用扩展

使用推送通知配置文件安装应用程序失败

401402403404分别是什么意思?

由于捆绑包 ID,iPhone 应用程序更新无法验证