为什么需要给应用签名?
macOS 会定期撤销某些开发者的数字证书,导致一些破解或自制应用无法正常启动,出现“已损坏”或“无法打开”的提示。手动为应用重新签名,可恢复其运行权限,或在必要时关闭 SIP(系统完整性保护)来解除限制 。
准备工作
- 打开 终端(Terminal.app)
- 确保你具有管理员权限
✅ .app 格式应用的签名命令
sudo codesign --force --deep --sign - /Applications/YourApp.app
- --force:强制覆盖旧签名
- --deep:递归签名整个包
- --sign -:使用临时开发者签名(Ad-hoc)
⚠️ 拖动应用到Terminal窗口内可自动填充完整路径 。
✅ 可执行文件的签名命令
若应用不是标准 .app 包,也可直接签名可执行文件:
sudo codesign --force --sign - /Applications/YourApp.app/Contents/MacOS/YourApp
🛠 完成签名后的操作
- 回车执行命令
- 输入管理员密码(不会回显)
- 再次回车
- 尝试启动应用,若仍报错,可考虑关闭 SIP 或配合 xattr -c -r 清理权限标签
🔧 常见错误及补救建议
- “specified item not found in keychain”→ 表示签名用的临时证书不可用,请确认系统时间是否正确;或尝试清理原签名、重新签名 。
- 签名后应用仍不启动→ 可清除原有的 quarantine 标签,然后重签,如:
sudo xattr -r -d com.apple.quarantine "/Applications/YourApp.app"
再次签名后启动 。
✅ 总结
通过上述步骤,你可以:
场景 | 操作方式 |
.app 包 | sudo codesign --force --deep --sign - /YourApp.app |
可执行文件 | 指定完整路径签名 |
遇到问题 | 使用 xattr 清除标签,或关闭 SIP |
这个方法简洁高效,不依赖第三方工具,适合开发者及进阶玩家使用。
欢迎在评论区留言—分享你的成功经验或遇到的坑,让大家一同受益 😉