12

我最近为另一家公司做了一些工作,为他们构建了一个 iPhone 应用程序。当我在他们的办公室、使用他们的计算机和我的办公室之间分配开发时间时,我生成了一个密钥,并将其作为他们 iPhone 开发中心“团队”的一部分进行了签名。

我已经有一个现有的开发中心帐户和我自己的开发人员证书。在为客户端项目导入证书后,对该应用程序进行签名会向我发出来自 codesign 的警告,指出它找到了多个与“iPhone Developer: Steve Madsen”匹配的证书,但它选择了正确的一个并签署了二进制文件。

我现在要使用我自己的开发人员证书回到我的一个旧项目。Codesign 告诉我它无法解决我的证书和用于我的客户的证书之间的歧义:

iPhone 开发者:Steve Madsen:不明确(匹配 /Volumes/Users/steve/Library/Keychains/login.keychain 中的“iPhone 开发者:Steve Madsen (9E69FVL37K)”和“iPhone 开发者:Steve Madsen”)

客户端证书是带有 (9E69FVL37K) 的证书,我认为这是 codesign 能够在我的客户项目中解决问题的方式。

如何配置 Xcode 项目以使用正确的身份?在目标构建设置下选择一个特定的(不是自动配置文件选择器)没有帮助。

更好的是,虽然 Apple 预计开发人员可以是多个团队的成员,但我没有找到关于像我这样的开发人员应该如何设置我的环境的文档。生成第二个密钥/证书似乎是完成这项工作的唯一方法,因为配置文件必须与一个团队的程序门户下的证书相关联。有没有人对如何使这个过程顺利进行有好的建议?

4

3 回答 3

5

今天晚上我冒险决定撤销我的旧证书并生成一个新证书。我的猜测是正确的:Apple 现在颁发的所有证书都带有(十六进制字符串)后缀。

Xcode 足够聪明,可以做正确的事。我在目标设置中选择“iPhone Developer”(自动选择)。它根据配置文件确定应该使用我的哪个密钥对二进制文件进行签名,然后通过包含(十六进制字符串)后缀告诉 codesign 准确使用该身份。

我敢打赌,较新的 iPhone 开发人员永远不会看到这个问题,因为他们在 Apple 开始添加后缀之后生成了他们的第一个证书。

提醒任何必须这样做的人:您还需要修复所有现有的配置文件,然后重新安装它们。

于 2009-11-13T02:09:53.560 回答
0

到目前为止,我一直在 3 个团队中工作,并且一直在使用 3 个单独的 iTunes 帐户,每个帐户一个(所以 3 个单独的电子邮件地址)。我知道这听起来不是最理想的情况,尤其是当你在比这更多的团队工作时。

但是,我想知道是否还有其他方法。因为如果您可以将您的 iTunes 帐户(iPhone 开发中心用户)与多个团队相关联,那么当您登录开发中心时会发生什么?您有多个选项可以进入多个“iPhone Developer Progrma Portals”吗?

于 2009-11-12T20:29:37.857 回答
0

感谢 Steve Madsen 指出。Apple 现在颁发所有带有 (HEXSTRING) 后缀的证书。这意味着如果您之前拥有 RUPERTO DE GUZMAN 的证书,则需要从 PROGRAM PORTAL -> CERTIFICATES 中撤销此证书。然后创建一个新证书。您的新证书现在将是 RUPERTO DE GUZMAN (EZxxxxxxxx)。

现在,codesign 将不再与前缀混淆,因为我们有:

前:

鲁珀托·德·古兹曼

鲁珀托·德·古兹曼 (89xxxxxxx)

后:

鲁珀托·德·古兹曼 (EZxxxxxxx)

鲁珀托·德·古兹曼 (89xxxxxxx)

于 2010-01-07T03:44:58.270 回答