2

我一直在使用您通过我关于 iPhone 开发的各种 Google 搜索分享的关于堆栈溢出的知识。谢谢你。

但现在我需要你的积极帮助。好吧,我一直在尝试为我的公司正在为第三方客户开发的应用程序创建最终版本。我已经使用我公司的 iPhone Program Portal ID 向该客户提交了临时分发,并且它们运行良好。

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

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

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

所以最后客户分享了他的 iPhone Program Portal ID 的登录凭据,我使用它创建了一个 AppStore 分发配置文件。之后,我下载了配置文件并将其放在“/Library/MobileDevice/Provisioning Profiles”下

然后在构建属性下,我尝试将此配置文件分配为代码签名身份,它给了我错误:

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

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

之后,我使用客户端帐户创建了一个新的 AppID 和配置文件,并尝试使用这个新的配置文件对代码进行签名。但它仍然给了我错误:

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

谁能解释一下可能是什么问题?是因为配置文件是使用客户端证书创建的,并且因为我只有证书但没有该证书的私钥,所以它给了我错误?

或者改写问题

是否有必要创建 AppStore 构建证书,应使用同一帐户创建 App Id 和配置文件,并且用于创建构建的 Mac 上的钥匙串必须同时包含证书和原始私钥证书?

非常感谢所有答复。

问候,

普里坦巴哈特。

4

3 回答 3

3

听起来您已经导入了客户的证书,但没有导入他们的私钥。您需要私钥和证书来签署应用程序。出于安全原因,私钥永远不会上传到 Apple Portal,因此您将无法从那里获取它。

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

于 2009-11-18T04:01:44.753 回答
1

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

于 2009-11-18T00:49:02.810 回答
0

我无法告诉你我从头开始重建了我的整个钥匙链多少次。过期的条目破坏了东西,更换机器破坏了东西,你明白了。我建议回到 Apple 在您获得 SDK 的页面上提供的分步说明。很少有人可以发布应用程序——您需要像组长一样做所有事情。

于 2009-11-18T00:46:38.807 回答