我最近为另一家公司做了一些工作,为他们构建了一个iPhone应用程序。当我在他们的办公室,使用他们的计算机和我的办公室之间分配开发时间时,我生成了一个密钥,并将其作为iPhone开发中心“团队的一部分进行签名。”
我已有一个现有的开发人员中心帐户和我自己的开发人员证书。导入客户端项目的证书后,签署该应用程序会给我一个来自codesign的警告,它会找到多个与“iPhone Developer:Steve Madsen”匹配的证书,但它会选择正确的证书并签署二进制文件。
我现在回到我的一个旧项目,使用我自己的开发人员证书。 Codeign告诉我,它无法解决我的证书与用于我的客户的证书之间的歧义:
iPhone开发人员:史蒂夫·马德森:模糊(匹配“iPhone开发者:史蒂夫·马德森(9E69FVL37K)”和“iPhone开发者:史蒂夫·马德森”/Volumes/Users/steve/Library/Keychains/login.keychain)< / em>的
客户端证书是(9E69FVL37K)的证书,我认为这是在我的客户项目中如何解决问题。
如何配置Xcode项目以使用正确的标识?在目标构建设置下选择特定的(不是自动配置文件选择器)也无济于事。
更好的是,虽然Apple预计开发人员可能是多个团队的成员,但我没有找到关于像我这样的开发人员应如何设置我的环境的文档。生成第二个密钥/证书似乎是实现此功能的唯一方法,因为配置文件必须与一个团队的程序门户下的证书相关联。有没有人对如何使这个过程顺利进行有很好的建议?
答案 0 :(得分:5)
我今晚采取了暴跌,并决定撤销我的旧证书并生成一个新证书。我的猜测是正确的:Apple现在发布所有带有(十六进制字符串)后缀的证书。
Xcode非常聪明,可以做正确的事情。我在目标设置中选择“iPhone Developer”(自动选择)。它根据配置文件确定我的哪些密钥应该用于签署二进制文件,然后通过包含(十六进制字符串)后缀告诉codesign准确使用该标识。
我敢打赌,较新的iPhone开发人员永远不会看到这个问题,因为他们在Apple开始添加后缀后生成了他们的第一个证书。
提醒其他人必须这样做:您还需要修复所有现有的配置文件,然后重新安装。
答案 1 :(得分:0)
到目前为止,我一直在研究3个团队,并且一直使用3个独立的iTunes帐户,每个帐户一个(所以3个单独的电子邮件地址)。我知道这听起来不是最佳情况,特别是如果你的团队比这更多。
但是,我想知道是否还有其他办法。因为如果您可以将您的iTunes帐户(iPhone开发中心用户)与多个团队关联,那么当您登录开发人员中心时会发生什么?您可以通过多种方式进入多个“iPhone Developer Progrma Portals”?
答案 2 :(得分:0)
感谢史蒂夫·马德森指出它.. Apple现在发布所有带有(HEXSTRING)后缀的证书。这意味着如果您之前拥有RUPERTO DE GUZMAN的证书,则需要从PROGRAM PORTAL - &gt;中撤销此证书。证书。然后创建一个新证书。您的新证书现在将为RUPERTO DE GUZMAN(EZxxxxxxxx)。
现在,代码符号不再与前缀混淆了,因为我们有:
在:
RUPERTO DE GUZMAN
RUPERTO DE GUZMAN(89xxxxxxx)
在:
RUPERTO DE GUZMAN(EZxxxxxxx)
RUPERTO DE GUZMAN(89xxxxxxx)