Xcode与iPhone 4开发:该可执行文件使用了无效的签名授权。

7
完整的错误信息如下:

可执行文件签名具有无效的权利。

该可执行文件已使用无效的授权进行签名。您应用程序的代码签名授权文件中指定的授权与您的预配配置文件中指定的授权不匹配。(0xE8008016)。

我已经花了几个小时来解决这个错误信息,但是还没有解决。基本上,我已经将我的 iPhone-4.0 设置为开发模式,并从 developer.apple.com 上的我的帐户安装了有效的预配配置文件。
我们有我们的主要应用程序,它使用相同的预配配置文件进行签名,它可以正常工作,但是当我尝试运行在http://teachyourselfiphone.com/书中提供的用于学习和测试目的的应用程序时,它就无法工作。
我已经尝试了以下所有方法,但是都没有起作用。
  1. 可执行文件签名具有无效的权利
  2. http://jomnius.blogspot.com/2010/11/executable-was-signed-with-invalid.html
请问有谁可以帮我解决这个问题吗?
8个回答

18
今天我遇到了这个错误。问题在于项目的配置文件与目标的配置文件不同。
请到项目设置中确认配置文件是否与您当前的应用程序标识符匹配,
然后转到目标设置并确保其是相同的设置。

谢谢Eamonn,对我来说只是清理解决方案并重新构建就可以了。我们所有的iPhone设备都安装有相同的开发人员证书。 - Paresh Masani
非常有帮助,谢谢。对于最近将项目切换到需要不同配置文件的多个目标的人:将“项目->构建设置->代码签名”设置为“不进行代码签名”;将每个目标的->构建设置设置为其所需的配置。 - Thomas Verbeek

3
感谢所有的想法。
由于我的原因不同,我也想分享一下:
我买了一个新设备,然后从我的旧设备备份中恢复了它。由于两台设备名称相同,iTunes 和 XCode 也复制了所有的配置文件。
我忘记了,即使设备名相同(而我的配置文件包括这个名字),但这是一个不同的设备 ID,并且在你的配置文件中没有包含此设备的情况下,它在此设备上不起作用,直到你在Xcode中将其包含在你更新、下载和安装的配置文件中。

2
我在我的Mac电脑上遇到了这个错误:
您应用程序的代码签名许可文件中指定的授权与您的预配配置文件中指定的授权不匹配。(0xE8008016)。
那时,我检查了xcode -> Targets -> "XXXX"(项目名称) -> GetInfo中的identifier。在属性选项卡中,我输入了错误的标识符值。更正之后,正确的应用程序标识符值就起作用了。

2
我之前使用的是分发证书而不是开发者证书... :P

1
为什么要踩这个回答?有时候人们会犯这样的错误,而这个回答确实提供了一个可能的解决方案。 - Craig Zheng

1

我也曾遇到这个错误信息。这是在我想要更新已经上架的一个应用程序时出现的。在重新下载过期配置文件数小时后,我运行了“清理所有目标”,然后问题得到解决。

祝你好运 - 这很令人沮丧,不是吗?


是的,这很令人沮丧,但现在一切看起来都很好!此外,苹果不允许您使用分发证书测试应用程序。您必须使用开发人员证书来测试您的应用程序,并在提交之前将其更改为分发证书...!!到目前为止还没有问题,但你永远不知道可能会引起一些问题。 - Paresh Masani

0

我曾经遇到过同样的问题...后来我解决了它...导致这个问题的原因可能有很多。这是我的特定情况,所以你可能会发现这个有用,也可能不会...这只是要检查的另一件事情。我想发布这个解决方案,这样明年当我再次尝试解决这个问题时,我可以找到我的帖子并修复它 ;) 如果其他人遇到类似的问题,他们也可以找到这个帖子,也许这就是他们遇到的问题... 我的具体问题是我没有更新所有需要更新的地方。我做对了三分之二,这可能接近了,但我们这里不是在玩马蹄铁游戏;) 在你嘲笑我之前,请记住事后诸葛亮...而且我老了,可能已经忘记了去年我可能已经解决的东西。

有几个区域需要检查,以确保您的配置文件已更新。

首先,有新的开发者身份证书。确保将其放入您的钥匙串中。在Mac上的Key Chain Access应用程序中,我的是在“密钥串” - “登录”下。 接下来,您需要在设备上获取新的配置文件。删除过期的配置文件并通过使用新的开发者身份生成一个新的配置文件。通过XCode4 Organizer完成此操作。信任组织者中的警告,无法找到有效的证书... 最后,这是我错过的一点,更新库配置文件!再次通过XCode4 Organizer,在“DEVICES”上方有一个“LIBRARY”部分,选择“Provisioning Profiles”,删除旧的过期配置文件并添加新的配置文件。
项目构建设置中的大提示-代码签名区域告诉您签名匹配的配置文件。我的说“当前匹配...”,然后列出了一个与我正在设备上安装的新配置文件不同的旧配置文件。即使那个旧配置文件没有过期,我相信它是基于昨晚过期的旧开发者身份。所以我认为问题是XCode使用那个旧的配置文件进行签名,而设备上有新的配置文件,因此我得到了上面非常清晰的错误消息;) ...

我花了几个小时找这个,希望我能节省别人一点时间。我相信明年当我再次搞砸的时候,我还会再去找它。

自我提醒:我告诉过你,明年你会把这个搞砸的......现在已经是明年了,而你正在阅读这篇文章。

同样的帖子也可以在这里找到:https://devforums.apple.com/message/425569


0

当我将手机更新到iPhone 6并从我的iPhone 4S备份中恢复时,我遇到了类似的问题。我最终得到了来自旧手机的配置文件,这些配置文件必须被删除。在iOS 8中,您不能再在“设置 -> 通用 -> 配置文件”中删除配置文件 - 在此处查找说明:使用ios 8和Xcode 6.0.1删除临时配置文件。然后,我必须手动下载团队配置文件,并使用与上述相同的说明进行安装。


0
如果您没有更改与证书相关的任何内容(未替换或更新它们),只需执行Product -> Clean。这在我多次遇到问题时都有帮助。(Xcode 6.2)

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