最近,我已将iPhone SDK操作系统从2.2.1版升级到3.0版。之后,在构建我的应用程序时,我收到配置文件已过期的错误。所以我创建了一个新的配置文件。
然后我使用配置文件分发了我的应用程序。但是在将我的应用程序同步到iPhone设备时,我在iTunes中收到错误。错误消息“iPhone上未安装应用程序'iGVA',因为权利无效。”
我检查了代码签名权利包含正确的权利plist
文件。
如何解决这个问题?
答案 0 :(得分:30)
答案 1 :(得分:7)
我也对此感到满意,并在 Ad-Hoc Apps and Entitlements 中找到答案。
您可能需要确保在“代码签名权利”下的项目设置中输入Entitlements.plist
文件的路径。
答案 2 :(得分:7)
测试人员需要Entitlements.plist文件才能安装ad-hoc版本。默认的iOS模板不包含一个。在XCode 3.2.4中,您可以创建一个这样的:
如果您还没有,请创建“ad-hoc”构建配置文件:
现在您已经创建了一个Entitlements.plist,您需要将其添加到您的构建设置中。
注意 - 如果您构建和安装应用程序,则在自己的设备上安装应用程序时会出错。运行“代码签名权限”设置为其他构建配置。
最后,检查是否已将Entitlements.plist添加到目标中。
您现在应该能够在没有此错误的情况下分发您的临时版本。
大部分内容都来自Apple的Managing Application Entitlements Guide,其余部分是通过试用而获得的。错误。
答案 3 :(得分:2)
我对此感到疯狂。最后,我想我明白了。在项目设置中,我正在正确的Adhoc配置中正确设置权利和代码签名。然而,虽然一切似乎都没问题,但当我选中“Project - > Edit Active Target”时,我的代码签名实体仍然停留在“iPhone Developer”。
在将其切换到正确的“iPhone发行版”并重新编译后,Xcode要求我首次允许代码签名。它全部编译完毕并转移到我的手机上!
我希望有所帮助。我认真地认为这个问题是苹果公司的一个漏洞或缺陷。由于他们没有记录的IDE,我失去了几个小时的简单事情......
答案 4 :(得分:2)
Xcode 4中的Ad Hoc版本不再需要代码签名权利 - 请参阅Apple Technical Note TN2250
中的详细说明答案 5 :(得分:2)
为了纪录,由于所有这些精彩的答案对我没有帮助,我以为我会分享我的权利故障。
所以是的,我添加了UDID,获得了配置,在手机上验证了,在构建设置中等等。
我的故障(感谢http://www.musicalgeometry.com/?p=1237)是Ad Hoc 计划仅设置为Ad Hoc 配置 仅用于运行设置
对于 存档设置 ,它仍然指向旧版本配置。
(这些设置是编辑方案窗口中的左侧选项卡。)
如果我拯救了我的挫折感 - 我已经完成了我的任务。
答案 6 :(得分:1)
此问题可能与Entitlements plist本身无关。我有两个用于测试的iPod Touch。当我与他们同步应用程序时,一个工作完美,但另一方面,我得到'权利无效'错误。事实证明,一个设备(工作的设备)上有移动配置文件,而另一个设备没有。这对我来说是一个明显的疏忽。然而,让我失望的是我从未明确地将配置文件添加到第一个设备。不确定它是如何进入该设备的(我还是新手 - 大声笑) - 过去我总是把它拖到组织器中并附带设备,但这次我没有这样做。
因此,配置文件和xcode都使用正确的ID等完美设置,但应用仍无法同步。显然,如果没有正确配置设备,您将收到错误。如果错误在这种情况下更有帮助,那就太好了。
答案 7 :(得分:1)
我有同样的问题,使用Xcode 4.结果是由于在Organizer的(Archives部分)的“Share ...”对话框中错误选择了Identity。 正确的选择(对我来说)是:“不要重新签名”。
答案 8 :(得分:1)
我在XCode 4中有这个。我尝试清理,删除和重新创建权利文件,但仍然没有乐趣。然后我将“可以调试”的值从YES更改为NO ..并且它有效。无论如何它现在似乎工作正常,我希望这有帮助!
答案 9 :(得分:1)
这也发生在我身上,而其他答案并没有为我解决。
在花了半天时间建造,安装,清洁,点击无效后 - 我终于从代码签名权利下的框中删除Entitlements.plist
,保存并再次输入 - 瞧!它再次奏效!我从未触及过实际的Entitlements文件,只是设置。
答案 10 :(得分:1)
确保在“构建和存档”时,您正在为“设备”构建并且您的配置不是“调试”。它似乎可以正确创建存档,但如果在执行“构建和存档”时设置为调试配置文件,则会在安装.ipa设备时失败。
答案 11 :(得分:1)
您还需要确保您有一个未过期的配置文件,这会暂时阻止我(Ad Hoc配置文件似乎在一年后过期)。错误消息是相同的,但它与没有有效的Entitlements.plist文件无关。
答案 12 :(得分:0)
来自文档:
为Ad Hoc构建应用 分配类似于建立一个 适用于App Store分发的应用程序 两个额外步骤的例外。 首先,您需要创建一个Ad Hoc 分配供应配置文件和 添加iOS设备的UDID 你想分发到使用 iPhone开发人员计划供应 门户。其次,你需要创建一个 代码签名权利文件。对于 有关如何创建的信息 权利文件读取管理 应用程序权利部分 iOS开发指南。
管理应用程序权利
iOS提供特殊访问权限 资源和能力 - 如 你的申请是否可以 调试的调试属性 权利。指定权利 您的申请中的信息 添加权利属性列表文件 包含权利定义 (键/值对)到您的项目。 在构建应用程序时,Xcode 将文件复制到生成的文件 应用程序包。
添加权利属性列表 提交到您的项目:
在小组&文件列表,选择 资源组。选择文件>新 文件。选择iOS>代码签名> 权利模板。命名文件 Entitlements.plist。 (你可以使用任何 名称;确保它与值匹配 代码签名权利的构建 设置,如下文所述 部分。)设置的类型 属性列表文件到iPhone 授权。选择文件 在文本编辑器中,选择View> 物业清单类型>苹果手机 权利持续存在。
将您的权利条目添加到 文件。对于每个权利属性 你需要定义:
单击“添加子项”或“添加同级” 所选按钮右侧的按钮 行。 “添加子项”按钮有三个 描述层次结构的线条,添加 同级按钮有一个加号(+) 它。选择权利属性 从出现的弹出菜单中。如果 您需要添加的权利 没有出现在菜单中,请选择 查看>物业清单类型>默认 对于文件类型。然后输入 权利 - 密钥名称和类型。
输入属性的值。组 代码签名权利构建 将目标设置为名称 新添加的权利 property-list file。
一旦你 创建了您的Entitlements文件 并将其添加到您的代码签名中 权利构建设置,打开 权利文件并添加或编辑 get-task-allow键并将其设置为 假的。
除了压缩你的.app 捆绑以分发您的Ad Hoc构建 对于测试人员等,建议 你也压缩了 之前的配置文件 分发因为某些电子邮件 客户端和服务器可能会破坏 供应资料。
有关Ad Hoc的信息 分发请阅读 发布测试应用程序 iOS开发指南中的部分。
答案 13 :(得分:0)
每当我在设备列表中添加新设备时,我都会遇到问题,然后通过选择新设备创建新配置文件并将它们拖到Xcode并准备构建。
当我使用该版本进行设备安装时,我收到了错误
权利无效
我试图通过我能想到的所有方式解决它,但没有任何积极的结果出来。无论如何,我必须制作新的App-ID或者必须重复创建配置文件的整个过程。然后我可以在设备上安装构建。
答案 14 :(得分:0)
我也有这个问题。事实证明,我确实编辑了一个配置以支持ad hoc,并确定我正在使用分发配置进行构建。但。我没有编辑分发配置的属性,而是发布了(我以为我正在编辑发行版)。
这可能不是它。但即使您确定,请仔细检查您是否使用了正确的配置,并且此配置已正确调整。
答案 15 :(得分:0)
我刚发现导致此问题的另一种情况。您必须确保包含正确的配置文件。我有一个同时拥有iPhone和iPod版本的应用程序,以及一个由同一个项目构建的iPad版本。我显然发送了iPad ad hoc配置文件与iPad版本的应用程序,它不起作用。更糟糕的是,我使用Xcode在本地安装了正确的配置文件,因此一切都在我的机器上正常运行。
答案 16 :(得分:0)
确保在 TARGETS 中选择签名身份;)