You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS codesign是否仅支持签名.app后缀文件?签名二进制报错求助

问题解答

环境信息

  • 系统版本:
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G31
  • 可用签名身份:
$ security find-identity -v -p codesigning
  1) 490E98B941A8B??????BC0711A62 "v-ca"
     1 valid identities found

问题描述

尝试对名为pipip的二进制文件执行签名命令:

$ codesign -vvv -s v-ca --force --all-architectures --timestamp /Users/vzhong/test-capitan/pipip-cli/build/osspi/pipip

出现错误:

/Users/vzhong/test-capitan/pipip-cli/build/pipip/pipip: invalid or unsupported format for signature

疑问:是否必须将pipip改为pipip.app格式才能完成签名?

解答

不需要一定要改成.app格式,macOS的codesign工具支持直接签名Mach-O格式的二进制文件(包括命令行可执行文件)。出现该错误通常有以下几种原因:

  • 文件非有效Mach-O格式:用file命令检查文件类型,确认它是macOS支持的可执行格式:
    file /Users/vzhong/test-capitan/pipip-cli/build/osspi/pipip
    
    若输出不是类似Mach-O 64-bit executable x86_64这类内容,说明文件格式异常,需重新编译生成正确的macOS可执行文件。
  • 文件损坏或不完整:编译过程可能出现异常导致文件损坏,尝试重新编译生成pipip文件后再签名。
  • 签名命令路径错误:命令中指定的路径是/Users/vzhong/test-capitan/pipip-cli/build/osspi/pipip,但错误提示路径为/Users/vzhong/test-capitan/pipip-cli/build/pipip/pipip,路径不一致,请确认待签名文件的实际路径是否正确。
  • 系统版本兼容性:Mac OS X 10.11(El Capitan)的codesign对部分新格式支持有限,若你是用更高版本系统编译的二进制文件,可能出现格式不兼容问题,建议在同版本系统下编译后再签名。

只要确认文件是Mach-O格式的可执行文件,直接用现有文件名即可完成签名,无需打包成.app包。

内容的提问来源于stack exchange,提问作者Zhong PengQun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:45:32