1

Mac 安装软件时提示 已损坏,无法打开 应该怎么办

 1 year ago
source link: https://wocai.de/post/2022/11/mac-%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E6%97%B6%E6%8F%90%E7%A4%BA-%E5%B7%B2%E6%8D%9F%E5%9D%8F%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80-%E5%BA%94%E8%AF%A5%E6%80%8E%E4%B9%88%E5%8A%9E/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在 Mac 使用的过程中,如果从第三方下载一些软件,安装的时候时常会出现“已损坏”的报错,这篇文章简单聊一下是为什么。

出现问题的原因#

主要是因为安装的这些软件没有按照苹果官方要求进行签名和认证,在系统检测的过程中,将这些软件拦截了。

方案一:关闭系统策略控制,选择全部安装来源#

在10.12及之前版本中,可以在设置-安全中找到一个“允许从以下位置下载的应用”,点击选择“全部来源”即可。

在10.13之后的版本,苹果将这个入口关掉了,你需要手动开通:

  1. 打开终端(或类似的软件)
  2. 输入 sudo spctl --master-disable,回车,输入密码。
  3. 再看一下刚才的那个界面,此时就出现全部来源了,选择全部来源。

spctl 全称是 system policy control,即系统策略控制。输入这个命令以管理员关闭这个机制。

更详细的苹果官方说明见这里

方案二:解除应用的隔离属性#

到了10.15版本之后,又有了新的变化,苹果官方的 gatekeeper 机制会给这些应用加上一个特殊的隔离属性,导致无法打开。

  1. 打开终端(或类似的软件)
  2. 输入 sudo xattr -r -d com.apple.quarantine 应用路径
  3. 对于 pegBoard 来说,常见的路径是 sudo xattr -r -d com.apple.quarantine /Applications/PegBoard.app
  4. 输入密码,回车。并再次打开。

xattr 是 Extended attributes,即扩展属性。苹果会给有风险的应用加上一个 com.apple.quarantine 属性,因此我们就需要用 xattr 命令删除这个属性。

-d 代表删除,-r 代表以递归方式。

更多关于GateKeeper的介绍见这里


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK