简单记录一下,经常用到的一个操作。
在MacOS上安装一些网络上下载的app,尤其是开源app时,经常遇到打开时提示”文件已损坏”,
让你”Move to Trash”或者”cancel”。
大部分情况下都是由于软件本身没有签名,所以会被 macOS 的安全检查所拦下。解决方法如下:
信任开发者,会要求输入密码:
sudo spctl --master-disable
然后放行目标App,
# 把这里的XXXXX替换成目标App的名字
xattr -cr /Applications/XXXXXX.app
一般来说执行上面两条命令就能正常打开。
但如果提示如下:
option -r not recognized
usage: xattr [-slz] file [file ...]
xattr -p [-slz] attr_name file [file ...]
xattr -w [-sz] attr_name attr_value file [file ...]
xattr -d [-s] attr_name file [file ...]
xattr -c [-s] file [file ...]
The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to attr_value.
The fourth form (-d) deletes the xattr attr_name.
The fifth form (-c) deletes (clears) all xattrs.
options:
-h: print this help
-s: act on symbolic links themselves rather than their targets
-l: print long format (attr_name: attr_value)
-z: compress or decompress (if compressed) attribute value in zip format
意思大概是-r
这个选项不识别,那执行如下命令:
# 把这里的XXXXX替换成目标App的名字
# 把-cr换成-c
xattr -c /Applications/XXXXXX.app/*
一般来说,大部分签名导致打不开的软件,到这一步都可以成功打开了。