在 Mac 使用的过程中,如果从第三方下载一些软件,安装的时候时常会出现“已损坏”的报错,这篇文章简单聊一下是为什么。
主要是因为安装的这些软件没有按照苹果官方要求进行签名和认证,在系统检测的过程中,将这些软件拦截了。
在10.12及之前版本中,可以在设置-安全中找到一个“允许从以下位置下载的应用”,点击选择“全部来源”即可。
在10.13之后的版本,苹果将这个入口关掉了,你需要手动开通:
sudo spctl --master-disable,回车,输入密码。spctl 全称是 system policy control,即系统策略控制。输入这个命令以管理员关闭这个机制。
更详细的苹果官方说明见这里。
到了10.15版本之后,又有了新的变化,苹果官方的 gatekeeper 机制会给这些应用加上一个特殊的隔离属性,导致无法打开。
sudo xattr -r -d com.apple.quarantine 应用路径sudo xattr -r -d com.apple.quarantine /Applications/PegBoard.appxattr 是 Extended attributes,即扩展属性。苹果会给有风险的应用加上一个 com.apple.quarantine 属性,因此我们就需要用 xattr 命令删除这个属性。
-d 代表删除,-r 代表以递归方式。
更多关于GateKeeper的介绍见这里
在 Mac 使用的过程中,如果从第三方下载一些软件,安装的时候时常会出现“已损坏”的报错,这篇文章简单聊一下是为什么。
主要是因为安装的这些软件没有按照苹果官方要求进行签名和认证,在系统检测的过程中,将这些软件拦截了。
在10.12及之前版本中,可以在设置-安全中找到一个“允许从以下位置下载的应用”,点击选择“全部来源”即可。
在10.13之后的版本,苹果将这个入口关掉了,你需要手动开通:
sudo spctl --master-disable,回车,输入密码。spctl 全称是 system policy control,即系统策略控制。输入这个命令以管理员关闭这个机制。
更详细的苹果官方说明见这里。
到了10.15版本之后,又有了新的变化,苹果官方的 gatekeeper 机制会给这些应用加上一个特殊的隔离属性,导致无法打开。
sudo xattr -r -d com.apple.quarantine 应用路径sudo xattr -r -d com.apple.quarantine /Applications/PegBoard.appxattr 是 Extended attributes,即扩展属性。苹果会给有风险的应用加上一个 com.apple.quarantine 属性,因此我们就需要用 xattr 命令删除这个属性。
-d 代表删除,-r 代表以递归方式。
更多关于GateKeeper的介绍见这里