添加代码签名权利时,“可执行文件被签署了无效权利”

问题描述:

我即将在appstore上发布我的第一个免费应用程序。按照开发者平台上的说明,我添加了一个“Entitlements.plist”文件,并在“代码签名权利”项目设置中引用了此文件。在完成此操作后,我无法再在我的Ipod上测试该应用程序,并显示此错误消息“可执行文件被签署了无效授权文件”。如果我删除对权利文件的引用,则一切正常。添加代码签名权利时,“可执行文件被签署了无效权利”

我已经做到了这一点: - 重新下载我的provisioning profile和安装它的组织者 - 试图使新的供应配置文件和安装 - 选中“获得任务,允许”在的plist文件。 - 尝试“清除所有目标”

你们能否在这一点上阐明一些看法?发布到应用商店时这很关键吗?我准备好了我的发行资料,但是我想我必须先解决这个问题。我很感激在这个问题上的任何想法!

+1

我从来没有使用一个“Entitlements.plist”。使用一个有什么好处? – Dimitris 2009-11-19 10:04:56

+0

我重新阅读了说明,我可能会误解。看来entitlements.plist只是临时分配需要。别人也可以证实这一点吗? 无论如何,在我得到Dimitris评论之前,我做了一些更多的研究。我在ipod上遇到这个问题的原因似乎是我的“App ID和Bundle Identifier之间不匹配”。我没有触及info.plist中的包标识符。这可以让我在appstore上被拒绝,我想知道吗? – Ezop 2009-11-19 10:30:07

+1

只需使用“com.yourdomain.yourappname”这样的包标识符即可。而且您不需要授权即可分发到应用商店。只要确保你已经创建了一个AppStore发行证书并签署了那个应用程序,而不是你的常规开发证书。 – Dimitris 2009-11-19 10:47:48

如果你的公司(或主页反正)被称为例如*.com,那么它是很好的做法,您的应用程序标识符:com.*.myAppName。你的证书中的通用应用标识符应该是*** com.*。****。这必须在iPhone开发中心中定义。然后确保在Info.plist中编辑您的应用程序的包标识符以反映这些更改。完成之后,您可以在设备上进行测试并发布AppStore。

+0

感谢您使用这个时间,德米特里斯。我仍然无法解决这个问题,尽管...我试图按照你的说法去做,但是当你说“你的证书中的通用应用标识符应该是* com.*。**”时,我不明白你的意思。我如何更改证书?我是否必须撤销它并制作一个新的?然后下载,安装在钥匙串等?对不起,有点慢,人... – Ezop 2009-11-19 12:21:56

+0

如果你去开发中心,“App IDs”那里的应用程序id的描述读取?它应该读取像EUYT765TR.com.youDomain。* – Dimitris 2009-11-19 12:41:06

+0

我现在有两个。我的旧版本是“ZQ75CFNP3G。*”,在线上是“espentokerud”。在阅读你的建议后,我制作了一个新的应用程序ID,这也显示出来。描述是“ZQ75CFNP3G.com.espentokerud.mittSnitt”和第二行“mittSnittAppID”。 – Ezop 2009-11-19 12:55:13

这听起来像是您意外地将项目设置为使用权利文件而不是仅分发版本。在针对您的开发人员证书(例如您的iPod)进行编译时,不应使用权利文件。它只能用于分发。

您最有可能做的是编辑设置的全局版本(通过双击组和文件部分中的项目文件)而不是目标版本。

下面是如何解决这个问题。

  1. 在Xcode打开项目
  2. 下,项目设置活动SDK和活动构建配置,无论你用你的iPod
  3. 打开目标选项卡下的组和文件
  4. 双击该你正试图建立的目标。目标图标看起来像一出的工具制作
  5. 向下滚动到代码签名和删除代码签名权利
+0

谢谢!为我工作。 – 2010-07-25 12:27:57