使用 Mac 时,我们总会装一些 app store 之外的应用,而这些来自第三方的应用在安装打开后经常会出现应用无法打开的情况。我遇到的主要两种:

情况一

打不开XXX,因为它来自身份不明的开发者

这种错误只会出现在 macOS Mojave 10.14 及以下版本。

解决方式

打开终端,输入:

1
sudo spctl --master-disable

然后回车,会提示你输入密码,密码就是你的开机锁屏密码。密码输入不会显示在界面上,只需正常输完回车就行,但需要注意输入法是否是英文键盘。

打开【系统偏好设置】-【安全与隐私】-【通用】确认一下,没输之前状态可能是这样的:

输完后重新进入【安全与隐私】应该就是下图状态:

然后可以尝试重新打开应用。

情况二

xxx已损坏,无法打开,您应该将它移到废纸篓

这种错误只出现在版本在 10.15 及以上的系统中,因为 Apple 对未签名的应用权限又缩紧了。macOS Mojave 10.14 及以下版本,只需将“允许任意来源”打开就行。但是在 macOS 10.15 中光打开“允许任意来源”还是不够的,需要将 app 身上的一个扩展属性删掉。

解决方式

打开终端,输入,注意在 quarantine 之后有一个空格

1
sudo xattr -d com.apple.quarantine

然后打开 finder,目录切换到应用程序,找到打不开的应用,拖入终端,回车。也会让你输入密码,输完回车。

苹果系统自 OSX 10.5 加入了一个叫 GateKeeper 保护机制,从互联网上下载来的文件,会被自动打上 com.apple.quarantine 标志,系统根据这个附加属性对这个文件作出限制。

macOS 10.14 即以下版本,安全限制还没这么严格,有这个属性的 app 需要确认才可执行,一旦被确认了,此属性就会被删掉。但 macOS 10.15 Catalina 对系统安全性大大的加强了,对于有这个 EA 的软件直接提示“已损坏”。