关于Mac应用提示已损坏,打不开解决办法

64次阅读
没有评论

Mac 应用提示“已损坏”打不开的解决办法

在 Mac 上下载应用时, 可能会出现“XXX 已损坏, 打不开”的错误提示, 无法正常使用该应用程序。这通常是因为下载过程中, 应用签名信息出了问题。下面我来告诉你如何解决这个恼人的问题:

关于 Mac 应用提示已损坏, 打不开解决办法

临时绕过公证

如果你只想快速临时解决这个问题, 可以使用绕过公证的方法:

  • 点击 Mac 左上角的“启动台”, 然后打开“其他”项下的“终端”程序, 启动终端窗口
  • 在终端窗口里, 先输入下面的命令, 记得最后面留一个空格:

sudo xattr -rd com.apple.quarantine

sudo xattr -rd com.apple.quarantine /Applications/25mac.app 
  • 然后打开“访达”, 进入“应用程序”文件夹, 找到出问题的应用图标, 直接拖到终端窗口
  • 拖入应用图标后, 按下回车键执行命令
  • 这时会提示输入密码, 输入 Mac 的系统登录密码, 再按回车键
  • 密码不会显示出来, 输入完直接回车确认
  • 完成! 现在就可以打开这个应用了, 不会再提示损坏信息

以上步骤可以快速临时解决无法打开应用的问题, 但是重启电脑后会再次失效。如果想完全修复, 可以尝试下面的重新签名方法。

应用重新签名

这种方法可以永久修复应用签名, 解决该问题:

  1. 同样先打开“终端”程序, 输入以下命令, 记得最后留一个空格:sudo codesign --force --deep --sign - 如:sudo codesign --force --deep --sign - /Applications/25mac.app
  2. 然后同样打开“应用程序”文件夹, 拖入问题应用到终端
  3. 按回车键执行命令, 输入密码, 完成签名
  4. 这次重启电脑后也不会再出现无法打开的情况了

SIP 大法

以上两种方法, 你可以根据需要选择一种来解决应用“已损坏”的问题, 重新无障碍打开应用程序。如果还是报错,就可以祭出大招了,需要关闭 SIP 文件系统保护,方法详见 MAC 关闭 sip

进阶

sudo xattr -rd com.apple.quarantine 命令详解如下:

sudo – 获取 root 权限执行命令

xattr – 用于管理 macOS 系统的扩展文件属性

-r – 递归地删除指定文件的扩展属性

-d – 删除操作, 不显示详细信息

com.apple.quarantine – 这个是 macOS 系统给下载的应用程序打上的标记, 包含来源 URL 等信息。

该命令的作用是递归删除指定文件或文件夹的 quarantine 扩展属性。

在 macOS 上, 从 internet 下载的应用程序会被加上 quarantine 标记, 系统会检验这个标记来决定是否允许打开该应用程序。

如果应用程序的 signature 签名出现问题,quarantine 标记就会导致“已损坏”错误。

使用 sudo xattr -rd com.apple.quarantine /Path/to/App 命令可以删除这个标记, 绕过安全检查, 临时解决无法打开 App 的问题。

需要注意, 此方法重启后会失效, 每次打开 App 都需要操作一次, 仅建议用于临时情况。

sudo codesign –force –deep –sign – 命令详解如下:

sudo – 获取 root 权限执行命令

codesign – 用于签名、验证代码签名的工具

–force – 强制进行签名操作, 不论原签名是否存在

–deep – 递归签名, 将签名应用到指定目标中的所有代码

–sign – 执行签名操作, 为目标文件添加签名

    • 签名使用系统默认的身份进行签名

该命令的作用是:

  1. 强制对指定的目标 (应用程序等) 进行递归代码签名, 添加签名信息
  2. 不管原先是否存在签名, 都用系统默认身份重新进行签名
  3. 签名会应用到目标中的所有代码和组件上

在 macOS 上, 下载的应用缺失正确的签名信息会导致无法打开, 报“已损坏”错误。

使用此命令可以修复应用程序的签名, 解决该问题。与仅删除 quarantine 标记不同, 该方法可以永久解决问题。

需要注意, 签名使用的是系统默认证书, 与开发者原始签名不同, 可能导致软件运行异常。建议仅在必要时使用。

正文完
 0
评论(没有评论)