HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Codesign和Ambiguos身份,匹配“Mac Developer”和“iPhone Developer”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在测试库的发布过程.该过程需要在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会生成相同的消息.

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

解决方法

不明确的证书

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

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

重复证书有时会出现在钥匙串中,因为一个过期的证书从未被删除过. 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

然后重试你的构建……

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

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

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

可选的:

例如,在您的情况下:

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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。