Xcode可执行文件被签署了无效的权利
我会通过使用Xcode在我的手机上安装一个应用程序,但它没有安装以下错误消息。
- 错误信息
“可执行文件被签名的权利无效,应用程序的代码签名权利文件中指定的权利与您在提供configuration文件中指定的权限不匹配(0xE8008016)”
- 调查事项
- 为什么在安装应用程序时出现错误信息?
- 你能不能介绍一下这个问题的解决方法?
在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理签名”,并确保一旦正确的开发团队再次被选中(在我的项目中默认为没有)。