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