jww*_*jww 4 code-signing jailbreak ios
我正在测试库的发布过程.该过程需要在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)
Run Code Online (Sandbox Code Playgroud)
我做了一个传递codesign(1),但我不知道如何解决它,因为它们是相同的KeyID.使用KeyID会生成相同的消息.
如何在签署可执行文件时消除歧义?
当钥匙串中存在两个具有相同身份的证书时,会发生这种情况:
代码签名工具要求只有一个.
注意:
ldid在您的问题中提及可能需要更多说明它与您的Apple发布的代码签名证书的关系,或者确切的问题.
重复证书有时会出现在钥匙串中,因为一个过期的证书从未被删除过.Apple有一些解决此类问题的说明,但如果以下方法不起作用,您可能需要在正常程序之外解决它:
最后,如果在创建新证书后错误仍然存在,请在Keychain Access中按住Control键并单击受影响的证书,选择"新标识首选项",然后单击"证书"字段.如果您在此处看到重复的证书,则这是Keychain Access的一个已知且不常见的问题.要解决此问题,请尝试以下操作:
Keychain Access> Edit> Keychain List,取消选中登录钥匙串的"Shared".
如果返回到Keychain List,您会发现登录密钥链仍然标记为Shared,创建以下文件的备份,如果存在则删除它们:
/Library/Preferences/com.apple.security-common.plist
~/Library/Preferences/com.apple.security.plist
Run Code Online (Sandbox Code Playgroud)
然后重试你的构建......
如果您未能通过上述步骤解决问题,请尝试搜索错误消息中列出的证书之一.一旦找到有问题的证书,就删除过期的证书或与您需要的证书冲突的证书.
如果您有多个代码签名证书,则需要使用以下-s选项指定要使用的代码(如果从命令行进行代码签名):
codesign -s <certificate name> -vvvv foo.app
Run Code Online (Sandbox Code Playgroud)
-s, - sign identity使用此标识在路径上签署代码.请参阅人工代码中的签名身份.
可选:
-v, - 验证请求验证代码签名.如果还请求其他操作(符号,显示等),则-v被解释为--verbose.
例如,在您的情况下:
codesign -s "iPhone Developer: John Doe" cryptest.app
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |