🎯 如何在 macOS 上手动签名应用(数字签名教程)

为什么需要给应用签名?

macOS 会定期撤销某些开发者的数字证书,导致一些破解或自制应用无法正常启动,出现“已损坏”或“无法打开”的提示。手动为应用重新签名,可恢复其运行权限,或在必要时关闭 SIP(系统完整性保护)来解除限制 。

准备工作

  1. 打开 终端(Terminal.app)
  2. 确保你具有管理员权限

✅ .app 格式应用的签名命令

Bash
sudo codesign --force --deep --sign - /Applications/YourApp.app
  • --force:强制覆盖旧签名
  • --deep:递归签名整个包
  • --sign -:使用临时开发者签名(Ad-hoc)

⚠️ 拖动应用到Terminal窗口内可自动填充完整路径  。

✅ 可执行文件的签名命令

若应用不是标准 .app 包,也可直接签名可执行文件:

Bash
sudo codesign --force --sign - /Applications/YourApp.app/Contents/MacOS/YourApp

🛠 完成签名后的操作

  1. 回车执行命令
  2. 输入管理员密码(不会回显)
  3. 再次回车
  4. 尝试启动应用,若仍报错,可考虑关闭 SIP 或配合 xattr -c -r 清理权限标签  

🔧 常见错误及补救建议

  • “specified item not found in keychain”→ 表示签名用的临时证书不可用,请确认系统时间是否正确;或尝试清理原签名、重新签名  。
  • 签名后应用仍不启动→ 可清除原有的 quarantine 标签,然后重签,如:
Bash
sudo xattr -r -d com.apple.quarantine "/Applications/YourApp.app"


再次签名后启动 。

✅ 总结

通过上述步骤,你可以:

场景操作方式
.app 包sudo codesign --force --deep --sign - /YourApp.app
可执行文件指定完整路径签名
遇到问题使用 xattr 清除标签,或关闭 SIP

这个方法简洁高效,不依赖第三方工具,适合开发者及进阶玩家使用。

欢迎在评论区留言—分享你的成功经验或遇到的坑,让大家一同受益 😉