1. 场景还原
从网上下载的应用程序无法打开,提示已损坏,无法打开,记录一下解决方法。
系统环境: macOS 14.4.1
电脑配置:MacBook Pro 16英寸 M1 Pro
2. 解决方法
1. 勾选任何来源
该设置将禁用 Gatekeeper,允许你安装未经过公证的应用程序。
打开系统设置,找到隐私与安全性,滑到最底部,勾选任何来源
如果你的电脑没有任何来源选项,例如下面这种:
需要打开终端,输入以下命令调出该选项(输入命令回车输入密码后退出设置重新打开即可显示)
sudo spctl --global-disable
命令解释:
这个命令是针对 macOS 系统中的 Gatekeeper(门卫)功能的。Gatekeeper 是 macOS 中的一项安全功能,用于保护用户免受恶意软件的侵害,它可以限制哪些应用程序可以在 Mac 上运行。spctl
(System Policy Control)是用于管理系统的安全策略和 Gatekeeper 设置的命令行工具。
sudo
:以管理员权限来执行命令。spctl
:是用于执行 Gatekeeper 相关操作的命令。--global-disable
:是spctl
命令的一个选项,它的作用是全局禁用 Gatekeeper,这意味着系统将不再执行 Gatekeeper 的应用程序验证和限制,允许任何来源的应用程序运行。
这个命令会将 macOS 系统中的 Gatekeeper 功能全局禁用,使系统不再强制执行应用程序的验证和限制,但这也会增加系统受到恶意软件攻击的风险,因为系统不再限制可信来源以外的应用程序的执行。
运行此命令后再次尝试打开软件
2. 绕开公证
如果软件还是无法打开,尝试绕开公证
在macOS中,公证(notarization)是指苹果公司对软件进行的一种安全验证机制,旨在确保软件未被篡改并且不包含恶意内容。然而,有时候可能会遇到需要绕过公证的情况。
打开终端,输入以下命令,命令后有一个空格,后面跟应用程序的路径,将损坏的文件拖动到终端即可补全路径(将后面路径中的app文件名替换为你自己的),回车,输入电脑密码回车即可
sudo xattr -r -d com.apple.quarantine /Applications/SecureCRT.app
以下是这段命令的解释
这个命令的作用是移除文件或目录中的"com.apple.quarantine"扩展属性。
在 macOS 中,"com.apple.quarantine" 属性用于标记文件是否是从互联网下载的,并可能被系统视为不安全。
使用 sudo 是为了确保你有足够的权限来执行这个操作,因为修改系统级属性需要管理员权限。
-r 选项表示递归地操作,即对目录中的所有文件和子目录都执行相同的操作。
-d 选项表示删除指定的属性。
所以,这个命令可以用来批量移除文件或目录中的下载标记,从而避免 macOS 在打开这些文件时显示安全警告或限制。
3. 修复签名
如果还是提示损坏,尝试在终端输入以下命令,命令后有一个空格,后面跟应用程序的路径(将后面路径中的app文件名替换为你自己的),将损坏的文件拖动到终端,回车,输入电脑密码回车即可
sudo codesign --sign - --force --deep /Applications/SecureCRT.app
4. 终极解决办法:关闭SIP
如果以上操作都无法解决问题,尝试关闭SIP能解决大部分软件无法打开的问题,但同时会带来系统安全隐患,请谨慎操作。
关闭System Integrity Protection(SIP)可能会带来以下一些风险和问题:
-
系统安全性降低: SIP旨在保护macOS的核心系统文件和目录免受未经授权的修改。关闭SIP可能使您的系统更容易受到恶意软件或未经授权的更改的影响,从而降低系统的安全性。
-
软件完整性问题: 关闭SIP可能允许您修改或删除系统文件,这可能导致软件完整性问题。例如,您可能会无意中删除或修改系统关键文件,导致系统不稳定或无法正常工作。
-
系统稳定性问题: SIP的目的之一是确保系统的稳定性和一致性。关闭SIP可能导致系统配置的不一致性,可能会影响系统的稳定性和性能。
-
更新问题: 关闭SIP可能会导致系统更新或升级过程中出现问题。macOS更新通常要求系统处于启用SIP状态下才能进行,关闭SIP可能会阻止您安装或应用关键的系统更新。
总的来说,关闭SIP可能会降低您的macOS系统的安全性和稳定性。除非您有特定的原因需要关闭SIP(例如某些开发或调试需求),否则建议保持SIP启用状态,以确保系统的安全性和稳定性。
关闭ISP的步骤稍微有点复杂,可参考以下链接:苹果系统 macOS 13 Ventura如何关闭sip? - 哔哩哔哩