Mac应用提示“已损坏”打不开的解决办法
Mac应用提示“已损坏”打不开的解决办法
小新软件Mac应用提示“已损坏”打不开的解决办法
在Mac上下载应用时,可能会出现“XXX已损坏,打不开”的错误提示,无法正常使用该应用程序。这通常是因为下载过程中,应用签名信息出了问题。下面我来告诉你如何解决这个恼人的问题:
临时绕过公证(最常使用办法)
如果你只想快速临时解决这个问题,可以使用绕过公证的方法:
点击Mac左上角的“启动台”,然后打开“其他”项下的“终端”程序,启动终端窗口
在终端窗口里,先输入下面的命令,记得最后面留一个空格:
1
2
3sudo xattr -rd com.apple.quarantine
如:sudo xattr -rd com.apple.quarantine /Applications/25mac.app然后打开“访达”,进入“应用程序”文件夹,找到出问题的应用图标,直接拖到终端窗口
拖入应用图标后,按下回车键执行命令
这时会提示输入密码,输入Mac的系统登录密码,再按回车键
密码不会显示出来,输入完直接回车确认
完成!现在就可以打开这个应用了,不会再提示损坏信息
以上步骤可以快速临时解决无法打开应用的问题,但是重启电脑后会再次失效。如果想完全修复,可以尝试下面的重新签名方法。
应用重新签名
这种方法可以永久修复应用签名,解决该问题:
同样先打开“终端”程序,输入以下命令,记得最后留一个空格:
1
2
3sudo codesign --force --deep --sign -
如:sudo codesign --force --deep --sign - /Applications/25mac.app然后同样打开“应用程序”文件夹,拖入问题应用到终端
按回车键执行命令,输入密码,完成签名
这次重启电脑后也不会再出现无法打开的情况了
SIP大法
以上两种方法,你可以根据需要选择一种来解决应用“已损坏”的问题,重新无障碍打开应用程序。如果还是报错,就可以祭出大招了,需要关闭SIP文件系统保护,方法详见 https://www.25mac.com/blogs/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 – 执行签名操作,为目标文件添加签名
- 签名使用系统默认的身份进行签名
该命令的作用是:
- 强制对指定的目标(应用程序等)进行递归代码签名,添加签名信息
- 不管原先是否存在签名,都用系统默认身份重新进行签名
- 签名会应用到目标中的所有代码和组件上
在macOS上,下载的应用缺失正确的签名信息会导致无法打开,报“已损坏”错误。
使用此命令可以修复应用程序的签名,解决该问题。与仅删除quarantine标记不同,该方法可以永久解决问题。
需要注意,签名使用的是系统默认证书,与开发者原始签名不同,可能导致软件运行异常。建议仅在必要时使用。