有时候在网上下载了一些修改过的 APP,运行的时候会因为原有签名已损坏导致无法运行:
创建自签名的代码证书,名称必须是 signature
:
信任级别设置为“始终信任”:
在命令行里使用 codesign
对 APP 进行重新签名:
codesign --deep --force -s "signature" /Applications/Sketch.app
命令执行成功后输出:
/Applications/Sketch.app: replacing existing signature
如果遇到失败的信息:
/Applications/Sketch.app: resource fork, Finder information, or similar detritus not allowed
执行以下命令,再重新签名就可以了:
xattr -cr /Applications/Sketch.app
这个时候再运行 APP,提示就变成了:
点击“在访达中显示”,然后对 APP 点击右键,选择“打开”
现在就可以正常运行了:
在重新签名前不要运行程序,否则即使签名后还是会提示文件损坏。
Resign Shell
#!/usr/bin/env zsh
set -e
target=$1
xattr -cr "${target}"
codesign --deep --force -s "signature" "${target}"