可执行文件被签署了无效的权利
我在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
- 打开Project.xcodeproj> project.pbxproj
- 删除像这样的所有行:
-
PROVISIONING_PROFILE = ...
-
"PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
-
CODE_SIGN_IDENTITY = ...
-
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
-
- 再次为目标设置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.production
configuration,而不是Pods.ad-hoc
configuration(并分别testing)
修理:
- 设置违规的configuration为
None
– cocoapods不会生成configuration,除非我这样做 - closuresXCode
- 运行
pod install
- 重新打开XCode并将新scheme的configuration设置为新生成的configuration。
而已!
检查您的设备是否包含在configuration文件中。