简单记录一下,经常用到的一个操作。

在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/*

一般来说,大部分签名导致打不开的软件,到这一步都可以成功打开了。