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

已签名的Python脚本使用PyInstaller打包出现codesign失败如何解决?

macOS El Capitan 下PyInstaller打包报codesign failure的解决方法

这个问题出在两个核心原因:一是旧版El Capitan系统的codesign工具不支持新的签名参数,二是PyInstaller新版本放弃了对10.11系统的适配,同时你提前对Python脚本做的签名不会生效,PyInstaller打包会生成全新的二进制程序,需要对最终生成的程序单独签名。可按以下步骤排查解决:

  • 方法1:禁用PyInstaller自动签名
    如果你不需要PyInstaller帮你完成打包后程序的签名,直接添加--no-code-signing参数跳过自动签名步骤即可,命令如下:
    pyinstaller --no-code-signing filename.py
    注:该参数仅支持PyInstaller 4.0及以上版本,如果你使用的版本更低,优先尝试下面的降级/手动签名方案。
  • 方法2:降级到适配El Capitan的PyInstaller版本
    最新版PyInstaller已经停止对10.11 El Capitan系统的支持,可降级到兼容的3.6版本:
    pip install pyinstaller==3.6
    降级完成后再重新执行打包命令即可。
  • 方法3:手动指定签名证书完成打包
    如果你需要打包后的程序保持签名状态,可在打包时直接指定你已经申请好的证书名称:
    pyinstaller --codesign-identity "你的证书完整名称" filename.py
    证书名称可在钥匙串访问应用中查看,需要确保证书已经被系统设为信任状态。
  • 方法4:打包完成后手动执行签名
    如果自动签名始终失败,可以先跳过签名完成打包,再手动调用系统codesign命令签名:
    codesign --force --deep --sign "你的证书完整名称" dist/你生成的程序名.app
    El Capitan的codesign工具必须添加--deep参数才能完成嵌套二进制文件的全量签名。
  • 额外排查点:权限问题
    打包路径避免选择系统级只读目录,优先在当前用户的桌面、文档等目录下执行打包操作,权限不足时可临时添加sudo前缀执行打包命令。

内容的提问来源于stack exchange,提问作者John Patrick Kokar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:54:05