xattr 命令清除 app 的隔离属性
macOS 中如果安装一些修改版或破解版软件,通过拖拽方式放到 application 目录,在打开 app 的时候可能提示程序无法运行,通常我们在系统 preference - security 里可以手动允许运行,但是有时候使用这种方法也无法打开,这是由于系统识别到这个 app 可能有问题所以给它加上了 com.apple.quarantine
隔离属性阻止了他的运行。
如果我们需要运行它,就需要删除 app 的 com.apple.quarantine
属性,可以使用 xattr
来处理。
macOS 上的文件不只有 “normal” 属性,也有 “读”, “写”, “执行” 等其他属性。常规属性可以用 ls -l myfile
命令来查看。除此之外还可以定义扩展属性,扩展属性的修改可以用 xattr
来处理。
命令语法如下:
1 | xattr [options] attributes [files] |
可用 option:
1 | -c CLear all Atrributes. |
显示一个文件的存在的扩展属性:
1 | xattr myfile |
显示一个文件的存在的扩展属性及这个属性的值:
1 | xattr -l myfile |
给一个文件添加 com.example.color
属性:
1 | xattr -w com.example.color myfile |
清除一个文件的 com.example.color
属性:
1 | xattr -d com.example.color myfile |
清除一个文件夹内所有文件的 com.example.color
属性:
1 | xattr -d -r com.example.color mydir |
清除一个文件的所有扩展属性:
1 | xattr -c myfile |
对于被屏蔽的 app 需要清除com.apple.quarantine
这一属性,处理过程如下:
首先查看 app 的现有属性:
1 | xattr /path/to/MyApp.app |
如果返回的结果有 com.apple.quarantine
属性则执行下面命令删除:
1 | sudo xattr -r -d com.apple.quarantine /path/to/MyApp.app |
执行后就可以正常打开 app 了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杜龙少!