Xcode可执行文件被签署了无效的权利

我会通过使用Xcode在我的手机上安装一个应用程序,但它没有安装以下错误消息。

  • 错误信息
    “可执行文件被签名的权利无效,应用程序的代码签名权利文件中指定的权利与您在提供configuration文件中指定的权限不匹配(0xE8008016)”

  • 调查事项
    1. 为什么在安装应用程序时出现错误信息?
    2. 你能不能介绍一下这个问题的解决方法?

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

您正在使用错误的configuration文件在设备上构build您的应用程序,请确保您使用正确types的configuration文件。 我正在使用App Store部署configuration文件在设备上构build。 使用即席configuration文件或开发configuration文件build立在您的设备上。

您正在使用授权文件

权利文件定义您的应用程序的某些function。 通常,当您启用应用程序的function时,该文件是由Xcode自动生成的。 如果启用了某些function,则只需要该文件,例如Healthkit集成。 如果你想使用这些function,你必须添加它。 否则,苹果会拒绝你的应用程序。

解决这个问题

  • 转到目标的构build设置。
  • 确保你select了“全部”而不是“基本”
  • 在search框中input“权利”
  • 结果是生成设置,您可以在其中指定您的权利文件所在的位置
  • 删除它们

您正在使用错误的configuration文件

供应configuration文件是一组数字实体,它将开发人员和设备与授权的iPhone开发团队进行了独特的绑定,并使设备能够用于testing。 开发供应configuration文件必须安装在您希望运行应用程序代码的每个设备上。

  • 转到生成设置>代码签名>供应configuration文件
  • 在Team下select一个开发configuration文件

请确保团队在项目,目标和testing是相同的。

软件包标识符和应用程序ID不匹配

  • 转到目标的构build设置
  • select打包并更改您的App ID以匹配Bundle ID

清除Xcode中的caching

Command-Option-Shift-K清除构build文件夹。 更好的是,退出Xcode并手动清除〜/ Library / Developer / Xcode / DerivedData。

您正在使用错误的configuration文件即分发进行开发。 转到生成设置>代码签名>供应configuration文件,然后select一个开发configuration文件。

检查“PROJECT> Build Settings”和“TARGETS> Build Settings”中的“Code Signing”configuration是否相同。

就个人而言,我用于两个:

  - "Code Signing identity": iOS Developer - "Provisioning Profile" : Automatic 

检查你的“团队”参数在你的目标。 它应该是你的项目和testing相同的。

对于我来说,上述答案都没有奏效。 我试图从Keychain中删除每个代码签名证书,并构build应用程序。 当我解决了所有与我的目标代码签名相关的错误时,我仍然有一些目标在testing中。 之前由我的团队中的其他人设置。 我刚刚切换到iOS开发人员,无效的权利错误消失了。

我面临这个问题,我的问题是我的包标识符和AppID不匹配。 请修改您的捆绑标识符在生成设置 – >打包就像你的AppID。

在这里输入图像说明

刚从您下载configuration文件的地方转到Apple开发人员门户。

select您的个人资料点击编辑,并检查是否所有的证书被选中。

在我的情况下,select所有证书并下载新的configuration文件解决了上述问题。

还要确保在您的模式中,您已将“构buildconfiguration”设置为正确的configuration,大多数情况下为“debugging”。

在CI进程中错误地导出带有App Storeconfiguration的ipa时出现此错误。 我的意图是用Adhoc供应导出。

我有同样的错误。 我的问题是我检查Entitlements.plist中的“启用HealthKit”,但是我创buildApp ID时没有启用HealthKit。

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

我的项目中突然出现了同样的问题,从一天到另一天。

对我来说固定的是将两个目标closures并重新启用“自动pipe理签名”,并确保一旦正确的开发团队再次被选中(在我的项目中默认为没有)。