2009-11-17 51 views
2

我一直在使用你的知识,你通过我关于iPhone开发的各种Google搜索在堆栈溢出上分享。谢谢你的一样。iPhone AppStore构建:代码签名问题

但现在我需要你的积极帮助。那么我一直在试图为我的公司为第三方客户开发的应用程序创建最终版本。我已经使用我公司的iPhone程序门户ID向该客户提交临时分发,并且他们工作正常。

现在客户想要将应用程序提交给AppStore。当然,应用程序应该与客户公司的iPhone程序门户ID进行签名。

因此,客户为我创建了一个管理团队成员帐户,并申请了一个证书并自行批准。下载它。并通过双击它将其安装在“登录”钥匙串(这是默认钥匙串)下的钥匙串访问中。

之后,我创建了一个应用程序ID。然后我继续创建AppStore分发配置文件。在这里我发现了一些如何在Provisioning Profiles下获得'Development'选项卡而不是'Distribution'选项卡。

最后,客户端共享了他的iPhone程序门户ID的登录凭证,我使用该登录凭证创建了AppStore分发预配配置文件。从那以后,我下载了提供的个人资料,并把它放在下“/库/移动设备/预置描述文件”

然后在我试图赋予这个供应配置文件的代码签名身份构建属性它给我的错误:

配置文件不匹配默认钥匙串中的任何有效证书/私钥对

之后,我创建了下载客户端开发以及分发证书并将它们添加到“登录”(它被设置为默认钥匙串)

之后,我创建了一个新的通过使用客户端帐户并试图使用此新的配置配置文件签署代码来创建AppID和配置配置文件。但它仍然给了我错误:

配置文件不匹配任何有效的证书/私钥默认钥匙串对

可有人请给我解释一下什么能问题?是否因为配置文件是使用客户端证书创建的,并且由于我只有证书而不是该证书的私钥,它会给我提供错误?

或者以另一种方式的问题

是否有必要建立一个AppStore的构建证书,应用程序ID和供应配置文件应使用相同的帐户和钥匙串在Mac上创建被用于创建构建必须包含证书以及证书的原始私钥?

所有的答复非常感谢。

Regards,

Pritam Barhate。

回答

3

听起来你已经导入了你的客户的证书,但不是他们的私钥。您需要私钥以及证书来签署应用程序。出于安全原因,私钥永远不会上传到Apple Portal,因此您将无法从中获取该密钥。

您可以通过选择钥匙串访问左边的证书来检查您是否拥有私钥。您现在应该看到客户分发证书左侧的三角形。按三角形应展开显示与该证书关联的私钥。如果没有三角形,那么你没有私钥。

+0

这对我有效。我不得不从我以前的开发盒中导出我的私钥,然后在新盒子上双击它(将其导入钥匙串访问)。我现在可以在XCode中进行分发。 –

+0

@Pritam,如果我的答案适用于您,请您点击勾号以获得奖励吗? :-) –

+0

是的,这是对的我没有导入私钥。对不起,我在这么长时间后添加了这个回复。我意外地得到了答案,然后我忘了回到这里。不过谢谢你。堆栈溢出是社区非常有用的。 –

0

我无法开始告诉你我从头开始重建整个钥匙串的次数。过期的参赛作品打破了一些事情,改变机器打破了一切,你明白了。我建议回到Apple提供的从SDK获取的页面上的逐步说明。很少有人可以发布应用程序 - 您需要像所有小组组长一样完成所有工作。

1

您需要使用您在自己的计算机上创建的.certSigningRequest来重新生成客户端的分发证书(就像为iPhone开发人员程序请求任何其他证书一样),然后使用该证书重新创建其分发预配配置文件。