Mac安装新app时,打开显示文件已损坏的解决方案
2023年12月4日 · 985 字 · 2 分钟 · Mac 技巧
前情提要
在折腾新的博客网站,考虑到以后文章会在多个平台发布,一张张上传图片,实在过于繁琐,因此考虑使用图床服务。
使用图床工具PicGo,可以更方便上传和管理图片。于是下载dmg,把app拖进Applications文件夹,点击打开,显示“PicGo已损坏,无法打开。您应该将它移到废纸篓“。啊?官网下载,GitHub的开源软件有问题?
问题产生原因
古早时期,碰到类似,应用被定义为问题应用时,均采用放弃安全保护的手段,使用命令开启允许「任何来源」的选项。好用,却放弃Mac上少有的保护手段,不可取。
不死心的我,针对Mac App为什么新安装时,打开显示为已损坏的这个问题做了精准搜索,用AI的说法就是我给搜索引擎提供了高质量的prompt,终于我获得了答案。
Mac自OS X10.5开始,引入一个Gatekeeper保护机制。当一个文件或者程序被识别为【可能】包含恶意代码、病毒、蠕虫等安全威胁时,系统会把该文件或程序放到一个叫「quarantine」的隔离区,以防止其进一步作恶。被关进小黑屋的文件或程序,不允许执行任何操作,打开看看也不行,直到被删除,或者被认定为安全。
Mac Gatekeeper为了系统安全,比较任性。没有去苹果官方报备自己是良心APP的应用,下载时就自动被关进了小黑屋,打上了quarantine的标志。小黑屋成员的APP一被打开,系统一检查,“哟,小黑屋成员啊,不许执行”,于是就显示「xxx已损坏」。PicGo就是这样的情况。
解决
知道问题产生的原因,剩下就是对症下药。通过命令,去掉「quarantine」的标志就行了。
操作步骤
- 打开terminal(终端),输入以下命令
sudo xattr -r -d com.apple.quarantine
- 命令的结尾加上一个空格
- 把打开显示损坏应用的安装文件,dmg结尾的那个,拖进terminal窗口,这样能让命令定位到,需要去除quarantine标志的应用所在位置
- 回车,显示passport。输入你的Mac登录密码即可,输入过程没有任何提示,正常输入,然后回车就行。不行多试验几次
- 再次把 APP拖到Applications文件夹,如果已经安装过,覆盖即可
- 打开,大功告成!
优势
相比于允许任何来源APP,这种方式没有放弃「来源检测」的保护机制,可以实现对于某一个APP或文件的去除「quarantine」标志。碰到时,操作一下就好了。安全的同时,也很方便。
建议收藏,方便后续使用。
作者:Enzo Lu
链接:https://enzolu.com/blog/solution-for-damaged-new-mac-app/
声明:除非另有声明,本文采用 CC BY-NC-SA 3.0 协议,转载请注明。