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

使用Developer ID分发含FFmpeg的App时出现Hardened Runtime签名错误

解决Developer ID分发时FFmpeg二进制的Hardened Runtime签名问题

方法一:重新编译FFmpeg(推荐方案)

直接从源码编译FFmpeg并启用Hardened Runtime,是最稳妥的解决方式:

  • 下载FFmpeg官方源码,解压后进入源码目录
  • 执行configure命令时添加Hardened Runtime及macOS适配参数(按需调整架构、功能选项):
    ./configure --prefix=/usr/local --enable-hardened-runtime --disable-shared --enable-static --target-os=darwin --arch=x86_64 --arch=arm64
    
  • 编译并安装:
    make && make install
    
  • 将编译生成的FFmpeg二进制替换到项目的Resources文件夹中,重新归档应用后再尝试分发

方法二:手动给现有FFmpeg二进制签名

如果无法重新编译,可通过终端命令手动给FFmpeg二进制添加Hardened Runtime签名:

  • 打开终端,找到FFmpeg二进制的实际路径(可以是项目Resources里的文件,也可以是归档包内的路径)
  • 执行codesign命令,替换其中的签名身份和文件路径:
    codesign --force --options runtime --sign "Developer ID Application: 你的名称 (你的TeamID)" /path/to/your/ffmpeg
    
    注:签名身份可在钥匙串访问中查看「Developer ID Application」类型的证书详情获取
  • 验证签名是否生效,执行:
    codesign -dv --verbose=4 /path/to/your/ffmpeg
    
    输出中若包含Runtime Version=10.14.0和Hardened Runtime相关字段,说明已成功启用
  • 签名完成后,重新归档应用并提交分发

注意事项

  • 手动签名时确保FFmpeg二进制未被其他签名锁定,使用--force参数可强制覆盖原有签名
  • 若使用Universal架构的FFmpeg,需确保签名同时支持x86_64和arm64架构
  • 重新编译FFmpeg时,可根据需求添加其他编解码器、功能参数,仅需保留--enable-hardened-runtime即可开启Hardened Runtime支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:41:01