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。以动态库名称为libEaseapi.dylib说明操作步骤:

security

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

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

codesign

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

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

查看签名信息

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

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

重新签名

codesign -f -s 'Apple Development: Easeapi Com (C7LAUUEPVY)' libEaseapi.dylib
//或
codesign -f -s 'HOUD0W9JZ7TZ9KLUXI18Y69U37GAH6GXJFVK21XF' libEaseapi.dylib

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

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

# iOS

相关文章:

Thread Sanitizer的原理和使用
iOS安全:使用frida-ios-dump砸壳
iOS Link Map
iOS文件系统目录结构
iOS performSelector使用int等基本数据类型的问题

发表留言

您的电子邮箱地址不会被公开,必填项已用*标注。