Xcode可执行文件签名的权限无效

15

我试图使用Xcode在手机上安装一个应用程序,但是出现错误提示,无法安装。

  • 错误信息
    "可执行文件使用无效的授权签名。您应用程序代码签名授权文件中指定的授权不匹配您的配置文件中指定的授权。(0xE8008016)"


  • 疑问事项
    1. 为什么在我安装应用程序时会出现这个错误消息?
    2. 请问你能否给我解决这个问题的方法?

很遗憾,它们对我没有起作用... :( - Join
15个回答

29

检查是否在Build Setting > Code Signing Section中使用了授权文件。如果是,请尝试删除该文件名。


在尝试了许多其他解决方案后,这对我起作用了。但是为什么我需要这样做呢?权限已被移除吗? - Matt__C
谢谢,不过能否解释一下这是如何工作的会更有帮助。 - James Mundy
1
这对我来说也没有意义 - 删除Entitlements.plist文件起作用了,但是Entitlements.plist是空的。听起来像是一个bug。 - Coruscate5

12

您正在使用授权文件

授权文件定义了您的应用程序的某些功能。通常情况下,当您为应用程序启用某个功能时,Xcode会自动生成该文件。只有在启用某些功能(例如 Healthkit 集成)时,您才需要该文件。如果您想要使用这些功能,则必须添加它。否则,苹果将拒绝您的应用程序。

解决方法:

  • 转到目标的构建设置。
  • 确保选择“全部”而不是“基本”
  • 在搜索框中输入“entitlements”
  • 结果就是可以指定 entitlements 文件位置的构建设置
  • 删除它们

您正在使用错误的配置文件

配置文件是一组数字实体,将开发人员和设备与授权的 iPhone 开发团队唯一地联系起来,并使设备能够用于测试。必须在每台您希望运行应用程序代码的设备上安装开发配置文件。

  • 转到“构建设置” > “代码签名” >“配置文件”
  • 在“Team”下选择一个开发配置文件

请确保项目、目标和测试中的 Team 是相同的。

捆绑标识符和应用程序 ID 不匹配

  • 转到目标的构建设置
  • 选择“打包”并将您的 App ID 更改为与 Bundle ID 匹配

在 Xcode 中清除缓存

使用 Command-Option-Shift-K 清理构建文件夹。更好的做法是退出 Xcode 并手动清理 ~/Library/Developer/Xcode/DerivedData。


从代码签名授权中将它们移除对我有用。 - Nick Peelman
1
请确保项目中的团队、目标和测试是相同的。- 这就是我的问题所在。谢谢! - ataravati

8

您正在使用错误的配置文件来在设备上构建应用程序,请确保使用正确类型的配置文件。我曾经使用App Store部署配置文件来在设备上构建。请使用Ad-hoc配置文件或开发配置文件来在您的设备上构建。


1
那拯救了我的生命。 - Evgeniy Kleban
如果您尝试在Instruments中对应用程序进行分析,很可能会发生这种情况。默认情况下,Xcode使用“Release”构建配置来进行分析。 - arsenius

6
您使用了错误的配置文件,即用于发布(distribution)的配置文件进行开发。请前往“构建设置(Build Settings)” > “代码签名(Code Signing)” > “配置文件(Provisioning Profile)”,然后选择一个用于开发的配置文件。

5
请检查您的“项目>构建设置”和“目标>构建设置”中的“代码签名”配置是否相同。
个人建议,对于两者都使用以下配置:
 - "Code Signing identity": iOS Developer 
 - "Provisioning Profile" : Automatic

5

请检查您目标中的“团队”参数。它应该在您的项目和测试中保持一致。


这对我来说是答案。谢谢。 - Im Batman

3

对我来说,上面的答案都没有用。我试图从钥匙串中删除所有的代码签名证书并构建应用程序。当我为我的目标解决了所有与代码签名相关的错误后,我仍然在测试目标中有一些错误。这是由我的团队中的其他人设置的。我只是切换到iOS开发人员,无效的授权错误就消失了。


3

我将应用从一个账户移动到另一个账户后遇到了这个问题。我尝试了其他人提供的所有解决方案,但那些可能只适用于其他情形。我通过转至“文件” -> “工作空间设置” -> “构建系统”并选择“传统构建系统”来修复了该问题。我使用的是XCode 10.3。


1
我遇到了这个问题,我的问题是我的捆绑标识符和应用程序ID不匹配。请在“构建设置->打包”中更改您的捆绑标识符,使其与应用程序ID相匹配。

enter image description here


0

我曾遇到同样的错误。我的问题是在Entitlements.plist中勾选了“启用HealthKit”,但我在创建App Id时没有启用HealthKit。

简而言之,您应将应用程序中的所有权利(项目中的Entitlements.plist文件)配置在您使用的预配配置文件上(预配配置文件=应用程序ID +证书+有关应用程序可以运行的设备的信息)。


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