xcodebuild:code signature invalid

 原创    2021-05-26

MH_EXECUTE、LC_LOAD_DYLIB等类型二进制文件必须签名才能使用。重签名操作涉及两个命令行工具:codesign和security。

macOS上安装的Apple开发者证书过期后,运行一工具,提示:code signature invalid。MH_EXECUTE、LC_LOAD_DYLIB等类型二进制文件必须签名才能使用,此时需要重签。重签名操作涉及两个命令行工具:codesign和security。以动态库名称为libKanchuan.dylib说明操作步骤:

security

security是macOS系统访问keychain和安全组件的命令行工具,钥匙串访问(Keychain Access)App实际上就是调用的security命令。通过man security查看security的具体用法。在本例中我们需要列出本机上可用的证书。

security find-identity -v -p codesigning
  1) HOUD0W9JZ7TZ9KLUXI18Y69U37GAH6GXJFVK21XF "Apple Development: Kanchuan (C7LAUUEPVY)"
     1 valid identities found
//-p:指定用途查找;
//-v:仅显示可用的;

codesign

macOS的签名工具。部分可用参数:

-s:签名;
-f:强制操作,将替换掉原有签名;
-d:显示签名信息;
-v:verbose,v越多信息越多;
-i:修改bundle id;
…

查看签名信息

codesign  -d -vv libKanchuan.dylib
libKanchuan.dylib: CSSMERR_TP_CERT_REVOKED
In architecture: x86_64

提示证书已经是撤销状态,需要重新签名。

重新签名

codesign -f -s 'Apple Development: Kanchuan (C7LAUUEPVY)' libKanchuan.dylib
//或
codesign -f -s 'HOUD0W9JZ7TZ9KLUXI18Y69U37GAH6GXJFVK21XF' libKanchuan.dylib

odesign -vv libKanchuan.dylib
libKanchuan.dylib: valid on disk
libKanchuan.dylib: satisfies its Designated Requirement

重签名之后,libKanchuan.dylib即可重新使用。

相关文章:

iOS Background Task使用陷阱
Address Sanitizer 的原理和使用
iOS Universal Links
iOS:清除Xcode缓存
CAShapeLayer Path Animation

发表留言

您的电子邮箱地址不会被公开,必填项已用*标注。发布的留言可能不会立即公开展示,请耐心等待审核通过。