VidHub - Apple全平台网盘视频播放器
...
iOS/Mac/tvOS免费视频播放器,自动刮削获取整理电影剧集封面和详细信息,打造私人影视库。
降价至 完全免费!
  • ¥288
  • 0
App损坏,无法打开的修复方法
App损坏,无法打开的修复方法
  • 小甜甜
  • 2024-03-29 19:08:47


App损坏,无法打开的修复方法

作为Mac App开发者,写这篇文章其实是很无奈的,如果大家安装的是正版应用,是不会遇到这个问题的,遇到这种问题的只有一个原因,你安装的不是官方下载的正版App。尤其是在macOS Catalina之后的版本,苹果引入了公证机制,很多破解安装包,并没有有效的证书公证,所有都会遇到这种问题。

通常你会看到下面的几种错误信息:

xxx.app 已损坏,无法打开,你应该将它移到废纸篓/打不开 xxx,因为它来自身份不明的开发者。

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

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

在安装的时候提示加载失败。

如果你也遇到类似的Mac电脑打不开应用程序的问题,都可以看一下这篇文章找到答案。

macOS的安全机制

稍微啰嗦一下为什么会出现这样的问题,在macOS上安全等级大概有三种:

第一类最高安全等级的应用是App Store应用,这类应用是需要在沙盒中运行的,如果你懂沙盒技术,就应该知道这是非常安全的等级,在App Store发布的应用能拿到的权限是非常受限制的,加上苹果对所有上架苹果商店的应用都会有人工审核,所以几乎不会遇到任何恶意程序。

安全性偏好设置窗口,在其中针对“允许从以下位置下载的 App:”选择了“App Store”

第二类是被认可的开发者的应用,因为第一类的安全要求,很多应用需要的功能并不能实现,所以苹果是允许开发者发布应用到开发者自己的网站的,这一类应用不受沙箱的限制,可以实现更多的功能,但是发布的时候需要到苹果的服务器上进行公证和签名。通过了公证,意味着Apple检查了这个App是否有恶意软件,但未检测到任何恶意软件。这类应用第一次打开还是会提醒一下,是否要选择打开。

有关 App 经过公证的提醒

第三类就是没有经过公证的应用了,也就是遇到的打不开的应用了,此类应用一定要谨慎安装使用,我知道大部分人还是想用免费的软件,其实很多正版软件也提供免费的试用,价格并不贵。如果你愿意承担风险,可以继续看下面的修复方法。

macOS 提醒窗口:无法打开 App,因为无法验证开发者。

修复方法1:开启App的安装来源选项-任何来源都可以安装

在系统偏好设置 -> 安全与隐私 -> 通用中,如果有版本比较低的macOS可以看到任何来源这个选项,但是最新的macOS应该都没有这个选项了,如果没有需要在终端 Terminal程序(这个程序是macOS系统自带的,在聚焦搜索🔍里可以查找到)中运行下面这个命令

sudo spctl --master-disable

敲下回车的时候,需要输入你的mac电脑登陆的密码。然后你再打开系统偏好设置 -> 安全与隐私 -> 通用就能看到任何来源这个选项,开启一下就好了。

这种方法如果你的程序还是无法安装打开,说明这个程序没有合法的签名,新的苹果系统公证检查过不了,那你就要继续查看下一个修复方法了。

修复方法2:绕过Apple的公证

还是在终端Terminal这个程序里输入这个命令,记住把命令中的xxxxxx.app换成你的应用,比如你用的uPaste.app。如果你不知道怎么输入app名字怎么办,只要输入前面一段命令sudo xattr -rd com.apple.quarantine 注意此处有空格,然后把应用拖进终端中,名字自动就出现了。

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

敲下回车的时候,需要输入你的mac电脑登陆的密码,然后再打开应用应该就没问题了。

如果修复方法2还是无法打开,那真的建议不要尝试了,这个安装包什么安全检查都没有,是非常危险的,因为接下来的方法100%应该会解决你App打开的问题,但是给你带来的风险也是100%的。

修复方法3:给应用强制签名

  1. 安装一个开发者工具,还是打开终端Terminal,输入下面的命令:
xcode-select --install
  1. 命令运行后可能会弹出一个安装窗口,只要选择继续就好了,如果安装失败,可能需要换个网络,因为这个工具是要从苹果的官网安装的。如果一直安装不成功,还有个方法直接到Mac App Store去下载整个的xcode。
  2. 上面的工具安装成功后,还是在终端Terminal里,输入下面的命令。记住把命令中的xxxxxx.app换成你的应用,比如你用的uPaste.app。如果你不知道怎么输入app名字怎么办,只要输入前面一段命令sudo xattr -rd com.apple.quarantine 注意此处有空格,然后把应用拖进终端中,名字自动就出现了。
sudo codesign --force --deep --sign - /Applications/xxxxxx.app

如果你看到下面的命令,那恭喜你成功了

/Applications/xxxxxx.app : replacing existing signature

如果你运行后,看到的是这样的,那就是运行失败

/Applications/xxxxxx.app : replacing existing signature
/Applications/xxxxxx.app : resource fork,Finder information,or similar detritus not allowed

失败的话需要你需要在codesign这个命令之前先运行一个下面的命令,就可以了

xattr -cr /Applications/xxxxxx.ap

好了,上面的三个方法几乎可以完美解决App程序无法打开的问题,注意是几乎,如果这些还是不行,那就要用到另外一个方法,注意也是更加危险的方法,可以参考这篇文章,Mac电脑关闭SIP系统完整性保护详细教程

再次强调,运行未经签名和公证的软件可能会使您的电脑和个人信息受到恶意软件的侵害,从而损害您的 Mac 或泄露您的隐私。

如果还有任何疑问,欢迎加我微信appsupportgroup或者发邮件给support@7littlemen.com详细咨询。


最热文章

最新文章