Navicat 在 Sonoma 下闪退问题处理
# Navicat 在 Sonoma 下闪退问题处理
系统版本:macos Sonama 14.2.1
Navicat:15.0.6
问题:打开数据库,双击表必现闪退,其他操作也经常触发闪退
# 最先开始认为是 Navicat 版本问题
所以找 IT 要到了 16 的正版授权,给到了一个 16.0.x 版本,安装测试依然闪退(这时候不知道还有最新的 16.3 版本)
这时候一度怀疑是 Sonoma 的问题(IT 给的建议是重装系统… 先不管重装能不能解决问题,重装成本有多高侬晓得伐)
# 再考虑可能是 navicat 残留的错误文件或者配置导致闪退
rm -rf 一系列 navicat 的配置、日志、数据、模型、等
删干净了,重新安装,依然闪退。真难顶,马上就快放弃了。重新开始 Google
问题,更换各种关键字
# 网上说的最多的 com.apple.quarantine
到底是什么?
com.apple.quarantine
是 macOS 系统中一个特殊的扩展属性(xattr),用于标记可能来自不可信来源的文件。当您从互联网上下载文件或通过邮件接收附件时,macOS 会自动为这些文件添加 com.apple.quarantine
属性。这个属性的主要目的是提醒用户谨慎对待这些文件,因为它们可能包含恶意软件或病毒。
当文件具有 com.apple.quarantine
属性时,系统会在您尝试打开它时显示一个警告对话框,询问您是否确实要打开这个文件。这可以防止用户无意中运行恶意软件。
com.apple.quarantine
属性还与 macOS 的 Gatekeeper 功能相关联。Gatekeeper 是一种安全机制,用于检查下载的应用程序是否来自已知的开发者,以及是否包含已知的恶意软件。当您从 App Store 或已签名的开发者处下载应用程序时,Gatekeeper 会允许您打开该应用程序。但是,如果应用程序来自未知的开发者或被 macOS 系统识别为潜在的恶意软件,Gatekeeper 将阻止您打开该应用程序。
在某些情况下,您可能需要删除文件的 com.apple.quarantine
属性,以便在不显示警告对话框的情况下打开文件。这在您确信文件是安全的情况下是合理的。您可以使用 xattr
命令来删除文件的 com.apple.quarantine
属性。
# 按照这个思路尝试解决
优先执行了这个命令
1 | sudo xattr -r -d com.apple.quarantine /Applications/Navicat\ Premium.app |
但是会提示错误
1 | option -r not recognized |
新系统 xattr
命令不支持 -r
参数
那么作为半个运维人,当然不可能不会这条命令:
1 | sudo find /Applications/Navicat\ Premium.app -exec xattr -d com.apple.quarantine {} \; |
这将使用 find
命令查找 Navicat Premium 应用程序包中的所有文件,并使用 xattr
命令尝试删除每个文件的 com.apple.quarantine
属性。
执行之后再次打开 navicat
依然闪退,放弃了。
# 最终方案
事情到了这里,已经折腾 1 小时了,但作为技术人,依然心存侥幸,仍然不愿意放弃继续 Google
,直接使用了 navicat sonama
当关键字搜索,翻阅 n 多条相关网站,终于得到一条有用信息: 升级到 16.2 之后就不会闪退了
所以快马加鞭到官网下载最新版本 16.3
安装,注册,测试,没闪退,问题解决.