我在iPhone上进行临时分发时遇到问题。我用SDK 3.0开发了一个应用程序。我有开发人员的执照。我在项目中添加了证书和配置文件。所以,没问题。
但是,当我尝试在iPhone上安装应用程序时,它会编译项目,然后在管理器窗口中显示错误:"The executable was signed with invalid entitlements"
。我错过了什么吗?我已经从2.2.1升级了iPhone,并从Apple下载了最新的SDK。
请帮我解决这个问题。
答案 0 :(得分:53)
“门户计划”中有很好的指示。如果您登录
http://developer.apple.com/iphone
然后单击左侧的“分布”,然后单击
为特别分发创建和下载分发配置文件
在底部链接。
这是关键位:
对于Ad Hoc Distribution,请完成以下操作:
答案 1 :(得分:34)
如果您尝试对设备未包含在配置文件中的应用进行配置,也可能会出现此错误。
确保您的设备包含在您要使用的开发配置文件中。不知何故,错误消息具有误导性。我的权利实际上还可以。
答案 2 :(得分:14)
我发现需要为开发构建检查“get-task-allow”,但是对于Distribution构建未选中。完成此任务的最简单方法(AFAIK)是在项目中包含两个权利文件:Entitlements.plist和EntitlementsDebug.plist - 并在构建项目设置中引用适当的一个用于各种配置你的项目。
答案 3 :(得分:6)
Xcode 4中的Ad Hoc版本不再需要代码签名权利 - 请参阅Apple Technical Note TN2250
中的详细说明答案 4 :(得分:4)
如果您曾经遇到这种情况,那么为了将调试(!)版本部署到您的手机,似乎需要检查“get-task-allow”,请检查:
a)检查构建设置。 Debug的“代码签名权利”中不应有任何条目 b)暂时删除Entitlements.plist并构建调试版本。如果它抱怨缺少Entitlements.plist,那么你可能有同样的情况,我今天不得不打架。 c)使用Entitlements.plist再次构建并启用“get-task-allow”。如果它现在有效,你可能会遇到同样的问题:
在搞乱新的配置文件后,我无法将我的Debug版本部署到手机上。 AdHoc很好。我查了一下) - 空..嗯。我检查了b) - 抱怨。 c) - 工作......
毕竟我在编辑器中检查了project.pbjproj并且 - 尽管GUI确实声称,“代码签名权利”没有条目,实际上在Debug部分中有一个。我把它清空并完成了。
答案 5 :(得分:4)
这是因为未使用您的配置文件选择运行应用程序的设备。
因此,只需完成Certificates, Identifiers & Profiles选择iOS Provisioning Profiles
点击编辑,然后选择您的设备
答案 6 :(得分:2)
我刚刚激动了三个小时与此作斗争。我刚刚将一个项目升级到4.2,由于某种原因它只是无法工作。
我最终删除了Entitlements.plist文件,然后创建了一个新文件。
档案>新文件>代码签名>权利
将文件命名为Entitlements.plist
确保它位于xCode中的Resources组中。
它没有在Entitlements.plist文件中放入get-task-allow BOOL类型。我添加了它,检查它,保存它,取消选中它,保存它。这让我感觉好多了。
然后我删除了我创建的Adhoc和Release配置文件。从Provisioning Portal重新下载它们并将它们重新下载到xCode管理器中。
然后我进入了Build Settings并确保将正确的配置文件分配给Debug和Release配置文件。
然后我将其更改为Release / Device。点击构建按钮,它就可以了。
我不知道为什么。
答案 7 :(得分:1)
约翰的回答是正确的99%。我发现(至少在我的配置中),您必须打开 PROJECT 的Build设置检查器。目标的构建设置不包含“代码签名权利”。如果项目中只有一个目标,也许这没有任何区别。但是,如果您有多个目标,则需要转到项目构建设置。在任何情况下,在做了约翰所说的之后,我的临时分发构建工作得非常完美。
答案 8 :(得分:1)
对我来说解决了它: https://coderwall.com/p/-ckobg
PROVISIONING_PROFILE = ...
"PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
CODE_SIGN_IDENTITY = ...
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
答案 9 :(得分:1)
在Xcode 5.1中,如果你进入首选项 - >帐户 - >查看详细信息......
确保签名身份状态为有效。如果显示Revoked,请点击加号按钮并添加相应的签名身份:iOS开发或iOS分发。 Xcode将用一个新的有效的替换它。
答案 10 :(得分:0)
如果一切似乎都设置正确就会出现此问题,则构建设置指向正确的配置文件,代码签名已正确设置等。
问题发生是因为我刚刚创建了一个新方案,并且没有为新配置重新生成我的CocoaPods 。从图像中可以看出,新的ad-hoc配置指向Pods.production
配置,而不是Pods.ad-hoc
配置(并分别测试)
修复:
None
- 除非我这样做,否则cocoapods不会生成配置pod install
就是这样!
答案 11 :(得分:0)
我没有同意苹果新的更新许可协议。
简要说明:请登录您的开发者帐户 - >个人资料 - >评论 - >阅读协议或让您的律师为您阅读 - >同意(按照您的意愿) - >然后再次单击配置文件以检查配置文件的状态。
在我的方案中,有效的代码签名实体没有显示出来。当我按照上面的程序时,它是可见的,我能够在设备上运行应用程序和/或创建iPA文件没有太大的困难。
答案 12 :(得分:0)
我刚刚遇到了我管理的团队中的开发人员。
事实证明他的开发者证书已过期,在续订后,我忽略了将他的证书添加到他的应用程序使用的配置文件中。
答案 13 :(得分:0)
很抱歉这已经很晚了,但我只是在看这个问题并发现了一些对我有用的东西。我去了PROJECT-> Build Settings并找到了Code Signing部分。除了调试之外,我选择了Iphone Distribution: MY NAME
的分发配置文件。我改为在Iphone Developer: MY NAME
下的下拉列表中选择了IpodProfile (for bundle identifiers com.myName.myApp
,这是我设备的配置文件。希望这有帮助!
答案 14 :(得分:0)
我也花了几个小时与之斗争。修复非常简单。在项目目录的根目录中编辑Entitlements.plist文件。找到说<key>get-task-allow</key>
的行。它下面应该是<false/>
。将其更改为<true/>
。
答案 15 :(得分:0)
我尝试将iCloud支持添加到现有应用中,但发现在添加权利并配置iCloud后,我的应用将不再调试。
我意识到我的通用iOS开发证书与我正在处理的应用程序有不同的APPID。所以要修复它,而不是使用我的通用证书,我为该APPID创建了一个特定的开发证书。
我在XCode中更新了我的配置文件,清理了应用程序,断开了我的设备,重新启动了XCOde并连接了设备并运行了,现在它正在运行!
答案 16 :(得分:0)
刚刚得到相同的错误代码。 似乎有不同的东西导致这种情况,因此有不同的方法来解决它。
就我而言,我有两个不同的同名设备(iPhone 4和iPhone 4S)。更改其中一个的名称完全修复了这个错误...
答案 17 :(得分:0)
所以,我删除了即将过期的配置文件,然后在XCode中转到Organizer(Command-Shift-2),在Library / Provisioning Profiles下,我删除了过期的配置文件。然后点击底部的“刷新”,输入我的Apple ID,并续订过期的。
最后,在我的Target上,我进入了Build Settings,Code Signing,并确保选择配置文件。瞧,现在它建立在我的设备上。
答案 18 :(得分:-1)
检查您的设备是否包含在配置文件中。