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

我在iPhone上遇到特殊分发问题。 我用SDK 3.0开发了一个应用程序。 我有开发者许可证。 我在我的项目中添加了证书和configuration文件。 所以,没有问题。

但是,当我尝试在我的iPhone上安装应用程序时,它会编译该项目,然后在Organizer窗口中显示错误: "The executable was signed with invalid entitlements" 。 我错过了什么吗? 我已经从2.2.1升级了我的iPhone,并从苹果下载了最新的SDK。

请帮我解决这个问题。

“门户计划”中有相当不错的说明。 如果你login

http://developer.apple.com/iphone

然后点击左侧的分配,然后点击

为临时分配创build和下载分配部署configuration文件

链接在底部。

关键是:

对于Ad Hoc分配,请完成以下操作:

  • 在文件菜单中,select新build文件 – > iPhone操作系统 – >代码签名 – >权利。 将文件命名为“Entitlements.plist”,然后单击“完成”。这将在项目中创build默认授权文件的副本。
  • select新的Entitlments.plist文件并取消选中“get-task-allow”属性。 保存Entitlements.plist文件。 (在Xcode 4中,get-task-allow被称为“可debugging”)
  • select目标并打开生成设置检查器。 在“代码签名授权”的构build设置中,input包含扩展名的新Entitlements.plist文件的文件名。 除非您将Entitlements.plist文件放在项目顶层以外的地方,否则不需要指定path。
  • 点击“Build”。 (注意:您的二进制文件必须包含57×57像素的扁平方形图标,此图标显示在iPhone或iPod touch主屏幕上。

如果您尝试对configuration文件中未包含设备的应用程序进行configuration文件,也可能会出现此错误。

确保您的设备包含在您要使用的开通configuration文件中。 不知怎的,错误信息是误导性的。 我的权利其实是好的。

我发现需要检查“获取任务允许”的开发版本,但未检查分发版本。 完成此项工作的最简单方法是在项目中有两个授权文件:Entitlements.plist和EntitlementsDebug.plist,并在项目设置中引用正确的文件。

代码签名权利不再需要在Xcode 4中进行Ad Hoc构build – 请参阅Apple技术说明TN2250中的详细说明

如果您一旦遇到这种情况,那么为了将debugging(!)版本部署到您的手机,似乎需要检查“get-task-allow”,请检查:

a)检查构build设置。 “代码签名授权”中应该没有条目进行debuggingb)暂时删除Entitlements.plist并构build您的debugging版本。 如果它抱怨失踪Entitlements.plist,那么你可能有相同的情况,我不得不今天战斗。 c)用Entitlements.plist重新构build并启用“get-task-allow”。 如果现在起作用,你可能有同样的问题:

乱搞新的configuration文件后,我无法部署我的debugging版本的手机。 AdHoc很好。 我检查了一个) – 空的..嗯。 我检查了b) – 抱怨。 c) – 工作…

毕竟我在一个编辑器中检查了project.pbjproj,尽pipeGUI确实声称没有“Code Signing Entitlements”的条目,实际上在Debug部分有一个条目。 我清空它,完成了。

这是因为您正在运行应用程序的设备没有被select与您的供应configuration文件。

所以只需通过证书,标识符和configuration文件select您的iOS Provisioning Profiles点击编辑,然后select您的设备

在这里输入图像说明

我已经有了一个令人兴奋的三个小时与这个战斗。 我刚刚升级了一个项目到4.2,由于某种原因,它不会工作。

我最终删除了Entitlements.plist文件,然后创build一个新的。

文件>新build文件>代码签名>授权

命名文件Entitlements.plist

确保它在xCode的资源组中。

它没有在Entitlements.plist文件中放入get-task-allow BOOLtypes。 我添加了它,检查它,保存它,取消选中它,保存它。 这让我感觉好多了。

然后,我删除了我创build的Adhoc和Releaseconfiguration文件。 从Provisioning Portal重新下载它们,并将它们重新放回到xCode组织器中。

然后我进入了“生成设置”,并确保将正确的configuration文件分配给“debugging”和“发布”configuration文件。

然后我将其更改为Release / Device。 打生成button,它的工作。

我不知道为什么。

约翰的答案是99%正确的。 我发现(至less在我的configuration中),你必须打开PROJECT的生成设置检查器。 目标的构build设置不包含“代码签名授权”。 如果你的项目只有一个目标,这也许没有什么区别。 但是,如果您有多个目标,则需要转到项目构build设置。 无论如何,在做了John所说的事情之后,我的专门分发版本完美地工作了。

在Xcode 5.1中,如果进入首选项 – >帐户 – >查看详细信息…

确保签名身份状态为有效。 如果它说撤销,点击加号button,并添加适当的签名身份:iOS开发或iOS分发。 Xcode会用一个新的,有效的replace它。

对于我解决它: https : //coderwall.com/p/-ckobg

  1. 打开Project.xcodeproj> project.pbxproj
  2. 删除像这样的所有行:
    1. PROVISIONING_PROFILE = ...
    2. "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
    3. CODE_SIGN_IDENTITY = ...
    4. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
  3. 再次为目标设置configuration文件和代码引用

pJosh,这可能有助于理解。 在我的情况下,我的团队调配configuration文件即将过期(调配门户指示它由XCodepipe理)以及应用程序的设备testingconfiguration文件。 (我仍然不知道为什么,但是门户网站旁边有一个“更新”button,但是当我点击它时什么都不会做)。

所以,我删除了即将到期的configuration文件,然后在XCode转到组织者(Command-Shift-2),在Library / Provisioning Profiles下,我删除了过期的configuration文件。 然后点击底部的“刷新”,input我的Apple ID,然后续约到期。

最后,在我的目标上,我去build立设置,代码签名,并确保selectconfiguration文件。 瞧,现在它build立到我的设备。

刚刚得到这个相同的错误代码。 看来有不同的事情导致这个,因此不同的方法来解决它。

就我而言,我有两个同名的设备(iPhone 4和iPhone 4S)。 改变他们其中一个的名字为我完全解决了这个错误…

我试图添加iCloud支持到我现有的应用程序,但发现添加权利和configurationiCloud后,我的应用程序将不再debugging。

我意识到我的通用iOS开发证书与我正在使用的应用程序有不同的APPID。 所以要解决它,而不是使用我的通用证书,我为该APPID创build了一个特定的开发证书。

我在XCode中刷新了configuration文件,清理了应用程序,断开了我的设备,重新启动了XCOde并连接了设备,然后运行,现在可以工作了!

我也花了好几个小时的时间来对付这个问题。 修复很简单。 在您的项目目录的根目录中编辑您的Entitlements.plist文件。 find<key>get-task-allow</key> 。 它下面应该是<false/> 。 将其更改为<true/>

对不起,这是很晚,但我只是看着这个问题,发现了一些为我工作。 我去了PROJECT-> Build Settings,findCode Signing部分。 除了debugging,我的分布configuration文件说, Iphone Distribution: MY NAME被选中。 我改为在IpodProfile (for bundle identifiers com.myName.myApp下的下拉列表中selectIphone Developer: MY NAME IpodProfile (for bundle identifiers com.myName.myApp设备configuration文件的IpodProfile (for bundle identifiers com.myName.myApp

我刚刚发生了这个事情,我的pipe理团队的开发人员。

原来他的开发者证书过期了,续订之后,我忽略了将他的证书添加到他的应用使用的configuration文件中。 在这里输入图像说明

我没有同意从苹果新的更新许可协议。

简而言之:请login到您的开发者帐户 – >个人资料 – >审查 – >阅读协议或让您的律师为您阅读 – >同意(按照您的意愿) – >再次点击个人资料来检查您的个人资料。

在我的情况下有效的代码签名实体没有显示出来。 当我按照上面的过程,它是可见的,我能够在设备上运行的应用程序和/或创buildiPA文件没有太大的困难。

如果所有内容似乎都正确设置,则会发生此问题,则生成设置指向正确的设置configuration文件,代码签名已正确设置等。

问题发生是因为我刚刚创build了一个新的scheme,并没有为新的configuration重新生成我的CocoaPods 。 正如您从映像中可以看到的那样,新的ad-hocconfiguration指向Pods.productionconfiguration,而不是Pods.ad-hocconfiguration(并分别testing)

演示ad-hoc配置和方案配置的不匹配

修理:

  • 设置违规的configuration为None – cocoapods不会生成configuration,除非我这样做
  • closuresXCode
  • 运行pod install
  • 重新打开XCode并将新scheme的configuration设置为新生成的configuration。

而已!

检查您的设备是否包含在configuration文件中。