首页 论坛 >> 综合讨论版块 常见问题 Mac无法安装软件的解决方案 xxx.app 已损坏、来自身份不明的开发者

  • 您的话题内容不能为空。
正在查看 0 条回复
  • 作者
    帖子
    • #43786
      口袋站长
      管理员

        刚用 macOS 的小伙伴或者在更新某个系统版本后运行 App 会提示提示【xxx已损坏,无法打开,你应该将它移到废纸篓解决办法】

        Mac无法安装软件最全解决方案 xxx.app 已损坏、来自身份不明的开发者

        常见的几种报错

        • xxx已损坏,无法打开,你应该将它移到废纸篓解决办法
        • 打不开 xxx,因为它来自身份不明的开发者
        • 打不开xxxx,因为 Apple 无法检查其是否包含恶意软件
        • 在安装的时候提示加载失败!

        为什么会出现?

        这是 macOS 启用了新的安全机制的问题。

        苹果默认是只允许安装自家【App Store】来源的应用,如果你想安装第三方的应用,那么需要在【系统偏 好设置 -> 安全性与隐私 -> 通用】中勾选【App Store 和被认可的开发者】选项。而被认可的开发者是需要购买苹果的企业证书对应用进行签名,然后再提交给苹果审核才可以,这对破解应用来说很不现实,因为破解应用必定会修改应用的文件从而导致签名失效而运行显示【已损坏】。

        解决方法就是去开启【任何来源】选项了,但是 macOS 默认是隐藏了这个设置的,需要用户手动通过终端执行命令行代码来开启。

        1. 开启任何来源(能解决绝大部分问题)

        先打开 系统偏好设置 -> 安全与隐私 -> 通用 选项卡,检查是否已经启用了 任何来源 选项。

        如果没有这个选项,复制以下面的命令:

        sudo spctl --master-disable

        打开终端

        将刚刚复制的命令粘贴到终端中。

        然后按下键盘的回车键(return)

        输入密码

        恭喜你,你已成功开启任何来源


        绕过公证(扩展)

        打开终端,输入以下命令:

        sudo xattr -rd com.apple.quarantine /Applications/xxxxxx.app

        将上面的 xxxxxx.app 换成你的App名称,比如 Sketch.app

        sudo xattr -rd com.apple.quarantine /Applications/Sketch.app

        或者复制以下命令粘贴到终端后

        sudo xattr -rd com.apple.quarantine 

        打开Finder(访达),点击左侧的 应用程序,将应用拖进终端中,然后按键盘的回车键(return),输入密码,再按回车键,完成。

        注意 quarantine 后面必须有个空格

        好了再看一下是不是可以打开APP了!到这里一般情况下 90% 的应用都可以安装运行了(在 MacWk 下载安装的几乎不会有这种情况)

        如果还不行,那就需要对应用进行本地签名操作了!

        应用签名(扩展)

        1. 安装Command Line Tools 工具

        打开终端工具输入如下命令:

        xcode-select --install

        1. 弹出安装窗口后选择继续安装,安装过程需要几分钟,请耐心等待。
        2. 打开终端工具输入并执行如下命令对应用签名:

        sudo codesign --force --deep --sign - (应用路径)

        应用路径:打开访达(Finder),点击左侧导航栏的 应用程序,找到相关应用,将它拖进终端命令的后面,然后按下回车即可,注意最后一个 后面有一个空格。

        正常情况下只有一行提示,即成功:

        /文件位置 : replacing existing signature

        如遇如下错误:

        /文件位置 : replacing existing signature
        /文件位置 : resource fork,Finder information,or similar detritus not allowed

        1. 先在终端执行:

        xattr -cr /文件位置(直接将应用拖进去即可)

        1. 然后再次执行如下指令即可:

        codesign --force --deep --sign - /文件位置(直接将应用拖进去即可)

        到这儿,百分之九十五的应用都可以正常运行了。如果还不行,请继续往下看。


        以上操作如果还不能解决,那就需要尝试关闭SIP系统完整性保护了。

        关闭 SIP(必杀技)

        关闭 SIP 后运行应用将不会再提示:

        1. xxx已损坏,无法打开,你应该将它移到废纸篓解决办法
        2. 打不开 xxx,因为它来自身份不明的开发者
        3. 打不开xxxx,因为 Apple 无法检查其是否包含恶意软件

        也就是说,只要应用本身可以运行,那不管应用是否签名/公证,不管应用是不是恶意应用,你打开后它都会直接运行在你的系统中

        提示: SIP(系统完整性保护 )是 macOS 所采用的一项安全技术,关闭SIP,就相当于是 “给手机Root”了,会降低电脑的,如非必要,不建议大家关闭SIP。

        以下是关闭SIP的具体操作步骤:

        检查 SIP 状态

        在sip系统完整性关闭前,我们先检查是否启用了SIP系统完整性保护。

        打开终端输入以下命令并回车(可以通过点击屏幕右上角的搜索图标,输入终端快速运行):

        csrutil status

        你会看到以下信息中的一个,指示SIP状态

        未关闭 enabled:

        System Integrity Protection status: enabled.

        已关闭 disabled:

        System Integrity Protection status: disabled

        如果是未关闭状态就需要关闭SIP了!

        ARM M1 处理器关闭 SIP 步骤:

        1. 关机
        2. 按住开机键不松手直到出现选项画面,然后点击选项

        1. 点击继续

        1. 点击菜单栏的实用工具,再点击终端

        1. 输入csrutil disable,然后按下回车也就是 return 键

        1. 输入y,然后按下回车也就是 return 键

        1. 输入你的电脑密码,然后按下回车也就是 return 键

        1. 等待执行结果……

        1. 出现 System Integrity Protection is off. 证明 SIP 已成功关闭。

        1. 输入 reboot 然后按下回车也就是 return 键重启电脑即可。

        如果后期想再开启 SIP,只需要将上面第 5 步的 csrutil disable 换成 csrutil enable 即可。

        Intel 处理器关闭SIP步骤:

        macOS 11.x Big Sur(Intel 处理器) 及以下系统关闭 SIP 步骤:

        1. 关机,然后重新启动你的Mac电脑,在开机时一直按住Command+R迸入Recovery模式。
        2. 进入Recovery模式后,分别点击 Utilities –> Terminal 来打开终端

        1. 在终端上输入命令 csrutil disable然后回车。

        1. 点击左上角苹果图标,再点击重新启动即可

    正在查看 0 条回复
    • 哎呀,回复话题必需登录。