ios – Codesign和Ambiguos身份,匹配“Mac Developer”和“iPhone Developer”

ios – Codesign和Ambiguos身份,匹配“Mac Developer”和“iPhone Developer”,第1张

概述我正在测试库的发布过程.该过程需要在Jail Broken iOS设备上进行测试.为此,我使用旧的iPad 1运行iOS 5.1监狱,打破 RedSn0w. RedSn0w没有修补Gatekeeper服务(代码签名),因此我需要使用我的开发人员帐户并签署我正在测试的二进制文件(Absinthe补丁关守,以及为什么你可以使用ldid生成虚假签名). 试图签署结果: $codesign -s "Joh 我正在测试库的发布过程.该过程需要在Jail broken iOS设备上进行测试.为此,我使用旧的iPad 1运行iOS 5.1监狱,打破 RedSn0w.

RedSn0w没有修补Gatekeeper服务(代码签名),因此我需要使用我的开发人员帐户并签署我正在测试的二进制文件(Absinthe补丁关守,以及为什么你可以使用ldID生成虚假签名).

试图签署结果:

$codesign -s "John Doe" cryptest.exe John Doe: ambiguous (matches "Mac Developer: John Doe (3VT8SJ9C5)" and "iPhone Developer:John Doe (3VT8SJ9C5)" in /Users/jdoe/library/Keychains/login.keychain)

我通过了codesign(1),但我不知道如何解决它,因为它们是相同的KeyID.使用KeyID会生成相同的消息.

如何在签署可执行文件时消除歧义?

解决方法 不明确的证书

当钥匙串中存在两个具有相同身份的证书时,会发生这种情况:

代码签名工具要求只有一个.

NOTE: The mention of ldID in your question might need a bit more
clarification as to how it relates to your Apple issued codesigning
certificates,or what the concern there is exactly.

重复证书有时会出现在钥匙串中,因为一个过期的证书从未被删除过. Apple有一些解决此类问题的说明,但如果以下方法不起作用,您可能需要在正常程序之外解决它:

>在Keychain Access中,确保您的“查看”菜单> “显示过期的证书”选项已打开
>单击“证书”“类别”,然后单击您在Keychain Access的“Keychain”侧栏中列出的每个钥匙串.如果您看到任何重复项,甚至是过期的证书,请删除这些重复项.
>单击Keychain Access中的“Keys”“category”.
>浏览每个钥匙串,查找并删除与受影响的证书具有相同公共名称的任何“孤立密钥”.孤立密钥是不受disclosure Triangle绑定到iPhone Developer或当前存在于钥匙串中的iPhone distribution证书的密钥.
>如果您找到并删除了任何额外的密钥或证书,请重新尝试构建.
>如果在使用相同的公用名删除所有活动或过期的重复证书或密钥后问题仍然存在,则可以尝试删除所有现有签名证书和密钥,并使用“如何删除/撤消证书”中的步骤将其替换为新证书和密钥.重新开始?
>最后,如果在创建新证书后错误仍然存​​在,请在Keychain Access中按住Control键并单击受影响的证书,选择“新身份首选项”并单击“证书”字段.如果您在此处看到重复的证书,则这是Keychain Access的一个已知且不常见的问题.要解决此问题,请尝试以下 *** 作:

钥匙串访问>编辑>钥匙串列表,取消选中登录钥匙串的“共享”.

如果返回到Keychain List,您会发现登录密钥链仍然标记为Shared,创建以下文件的备份,如果存在则删除它们:

/library/Preferences/com.apple.security-common.pList    ~/library/Preferences/com.apple.security.pList

然后重试你的构建……

If you fail to resolve the issue by the steps above then try searching
for one of the certificates Listed in the error message. Once you find
the certifcate in question delete either the expired one,or the one
that is conflicting with the one you need.

多个协同签名证书(不重复)

如果您有多个代码签名证书,则需要使用-s选项指定要使用的代码(如果从命令行进行代码签名):

codesign -s <certificate name> -vvvv foo.app

-s,–sign IDentity
Sign the code at the path(s) given using this IDentity. See SIGNING IDENTITIES in man codesign.

可选的:

-v,–verify Requests verification of code signatures. If other actions (sign,display,etc.) are also requested,-v is interpreted to
mean –verbose.

例如,在您的情况下:

codesign -s "iPhone Developer: John Doe" cryptest.app
总结

以上是内存溢出为你收集整理的ios – Codesign和Ambiguos身份,匹配“Mac Developer”和“iPhone Developer”全部内容,希望文章能够帮你解决ios – Codesign和Ambiguos身份,匹配“Mac Developer”和“iPhone Developer”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1058778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存