当前位置: 首页 > 教程 > Mac软件技巧 > xxx.app 已损坏无法打开,来自身份不明的开发者解决方法

xxx.app 已损坏无法打开,来自身份不明的开发者解决方法

刚接触 macOS 的小伙伴或者在更新某个系统版本后运行 App 会提示提示【xxx已损坏,无法打开,你应该将它移到废纸篓解决办法】、【打不开 xxx,因为它来自身份不明的开发者】,【打不开xxxx,因为 Apple 无法检查其是否包含恶意软件】小编教大家修复方法。 

常见的三种报错

xxx已损坏,无法打开,你应该将它移到废纸篓解决办法

打不开 xxx,因为它来自身份不明的开发者

打不开xxxx,因为 Apple 无法检查其是否包含恶意软件

为什么会出现?

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

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

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

下面就让小编教大家使用命令行代码开启隐藏的任何来源选项。

开启任何来源

先打开系统偏好设置 > 安全与隐私 > 通用 选项,检查是否已经启用了 任何来源 选项。如果没有启用,先点击左下角的小黄锁图标解锁,然后选中任何来源。

如果没有这个选项,我们打开终端,输入以下命令 (可以通过点击屏幕右上角的搜索图标,输入终端快速运行):

sudo spctl --master-disable

然后按下键盘的回车键(return),输入密码,再按回车键,完成。

输入命令回车后会看见个 password 后面还有个钥匙图标,在钥匙图标后面输入你自己电脑解锁密码(输入的时候不显示你输入的密码,感觉就是输入不了东西一样,也不用管,凭感觉输入完正确解锁密码后按回车键)

好了,现在回到 系统偏好设置 -> 安全性与隐私 -> 通用 里,就会发现已选中任何来源选项了。

一般执行完命令会默认选中的,如果没有选中,解锁一下选中就可以了!

到这里一般情况下应用都可以运行了。


然而有的应用开启了任何来源还是不行,这是因为苹果进一步收缩了对未签名应用的权限,这时候就需要过终端执行命令行代码来绕过应用签名认证啦。下面小编就教大家通过命令绕过苹果的公证 Gatekeeper。

来,让我们继续往下看。

绕过公证:

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

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了!

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


应用签名

1.安装Command Line Tools 工具

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

xcode-select --install

2.弹出安装窗口后选择继续安装,安装过程需要几分钟,请耐心等待。

3.打开终端工具输入并执行如下命令对应用签名:

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

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

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

/文件位置 : replacing existing signature

如遇如下错误:

/文件位置 : replacing existing signature

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

1.先在终端执行:

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

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

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

到这儿,百分之九十五的应用都可以正常运行了。如果还不行,那就需要关闭SIP系统完整性保护才可以了!一劳永逸!

相关文章