刚用 mac 的小伙伴或者在更新系统版本后运行 App 会碰到弹窗提示「xxx已损坏,无法打开,您应该将它移到废纸篓」、「打不开xxx,因为 Apple 无法检查其是否包含恶意软件」、「打不开 xxx,因为它来自身份不明的开发者」等问题,下面就教大家如何修复

常见报错

常见报错一:无法打开xxx,因为 Apple 无法检查其是否包含恶意软件/因为它来自身份不明的开发者/因为无法验证开发者(鼠标右键应用再点击打开即可)

常见报错二:xxx已损坏,无法打开,您应该将它移到废纸篓(往下看)

出现的原因

这是因为 mac 启用了新的安全机制

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

解决方法就是要开启「任何来源」选项,但是 mac 默认是隐藏了这个选项的,需要手动通过终端执行命令行代码来开启。

开启「任何来源」选项

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

注意!如果没有「任何来源」选项,我们打开终端(command+空格 聚焦搜索 终端),复制以下命令粘贴到终端:

sudo spctl --master-disable

然后按下回车键,出现钥匙图标后输入电脑的开机密码(输入过程中密码是看不到的)输入完成后再按下回车键即可。现在回到 系统偏好设置 -> 安全性与隐私 -> 通用 里,就会发现已选中任何来源选项了。

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

然而有的应用,尤其是游戏开启了任何来源还是不行,这是因为苹果进一步收缩了对未签名应用的权限,这时候就需要通过终端执行命令行代码来绕过应用签名认证就可以了。

绕过公证

打开终端,复制以下命令粘贴到终端:

sudo xattr -rd com.apple.quarantine

注意最后quarantine 后面加一个空格!然后打开Finder(访达),点击左侧的 应用程序,找到相关应用,拖进终端quarantine 的后面,然后按下回车键,出现钥匙图标🔑后输入电脑的开机密码(输入过程中密码是看不到的)输入完成后再按下回车键即可。

到这里游戏都可以运行了

然而部分应用还是不行的话,那就需要对应用进行本地签名了

应用签名

先安装Command Line Tools 工具,打开终端,复制以下命令粘贴到终端:

xcode-select --install

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

安装完成后对应用进行签名,复制以下命令粘贴到终端:

sudo codesign --force --deep --sign -

然后打开Finder(访达),点击左侧的 应用程序,找到相关应用,拖进终端 的后面,注意最后 后面有一个空格!然后按下回车键,出现钥匙图标🔑后输入电脑的开机密码(输入过程中密码是看不到的)输入完成后再按下回车键即可。

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

/文件位置 : replacing existing signature

如遇如下错误:

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

先在终端执行:

xattr -cr 应用路径(直接将应用拖进去即可)

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

codesign --force --deep --sign - 应用路径(直接将应用拖进去即可)

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

关闭SIP

以上操作如果还不能解决,那就需要关闭SIP系统完整性保护才可以了!点我查看