ace12138 发表于 2025-12-2 17:43

关于Mac激活Navicat17.3.X版本无法保存密码问题临时解决方法

本帖是关于skrets作者的Navicat 17 之 macOS 替换公钥通杀思路的后续问题补充,也只是一个临时解决方法,希望后续有大神给出永久解决方案

本人设备 MacBook Pro M4Pro 版本,Navicat 版本为17.3.5中文版

产生的问题为:当 Navicat 保存密码是出现下面异常:Failed to save password Error code: -34018


临时解决方案为:在系统【钥匙串访问】中新增对应数据库的密钥,并把权限设置为公开(如果已经有对应的密钥,直接修改权限即可),这样Navicat可以直接读取到对应数据库的登录密钥:


新增名称设置为:com.prect.Navicat.conn {Conn:MySQL; Db:localhost; UserID:local; ProjectID:local},其中把Db:localhost替换为自己的数据库名称,在 Navicat 编辑连接里面可以找到:


然后即可在 Navicat 中正常打开对应的数据库,注意:如果修改数据库密码最后重建对应的密钥

下面为激活教程的补充步骤说明(以下操作在 M4 芯片下运行,理论上 M 系类通用):
1、下载Navicat 17 之 macOS 替换公钥通杀思路帖子的附件
2、安装insert_dylib软件
git clone https://github.com/Tyilo/insert_dylib.git
cd insert_dylib/insert_dylib
clang main.c -o insert_dylib
sudo cp insert_dylib /usr/local/bin/
insert_dylib --help
如果成功安装,会显示 insert_dylib 的帮助信息,包含其使用方法和参数说明

3、执行帖子的重新签名
insert_dylib --inplace --all-yes @rpath/libNavicat.dylib '/Applications/Navicat Premium.app/Contents/MacOS/Navicat Premium'
codesign -f -s - '/Applications/Navicat Premium.app/Contents/MacOS/Navicat Premium'
4、复制解压的文件libNavicat.dylib 放在 Navicat Premium.app/Contents/Frameworks

5、打开 Navicat,然后点击选择激活,复制帖子提供的激活码点击确认即可完成激活

ace12138 发表于 2025-12-8 14:35

最新解决方法,注入到其他程序也行,感谢@江南小虫虫 ,对应方法如下(主要是改动执行第 3 点):
insert_dylib --inplace --all-yes @rpath/libNavicat.dylib '/Applications/Navicat Premium.app/Contents/Frameworks/EE.framework/Versions/A/EE'
codesign -f -s - '/Applications/Navicat Premium.app/Contents/Frameworks/EE.framework/Versions/A/E'
其他步骤不变,这里补充下,如果提示程序已经损坏,只需要执行下面命令再重新打开:
xattr -cr 'Navicat Premium.app'
注意,激活之后历史的密码可能会失效,编辑重新保存下密码即可

江南小虫虫 发表于 2025-12-4 17:04

ace12138 发表于 2025-12-3 17:53
有没有详细操作方法

看楼主的帖子,改成下面应该就行

insert_dylib --inplace --all-yes @rpath/libNavicat.dylib '/Applications/Navicat Premium.app/Contents/Frameworks/EE.framework/Versions/A/EE'

He67078 发表于 2025-12-2 21:52

攒了,不过还是觉得win11目前比较舒服,苹果系统一言难尽

zhanggoat 发表于 2025-12-2 20:47

赞了挺有用的

Z564493690 发表于 2025-12-3 08:36

赞了,虽然很少用到MAC

EZStudio 发表于 2025-12-3 08:51

明白了,原来是这样,我还以为不能激活了呢

花下野死鬼 发表于 2025-12-3 08:58

使用DataGrip呢,现在好像免费个人使用了

lxj12328 发表于 2025-12-3 10:18


{:1_893:}大佬牛逼

Vvvvvoid 发表于 2025-12-3 10:48

本帖最后由 Vvvvvoid 于 2025-12-3 10:51 编辑

re sign 的 本地签名没有权限使用 keychain 的 api ;
解决方案应该是 hook 并重写 keychain 的 增删改查的 4 个 api,自己简单实现一套账户密码的序列化逻辑;
可以参考:
https://github.com/marlkiller/dy ... mmon/MockKeychain.m

lichao890427 发表于 2025-12-3 11:29

本帖最后由 lichao890427 于 2025-12-3 11:30 编辑

He67078 发表于 2025-12-2 21:52
攒了,不过还是觉得win11目前比较舒服,苹果系统一言难尽
win最初也是抄mac, 很多东西都是反着来的, 所以用久了win用不惯, 正常
mac是给程序员或专业人士用的.win是给小白或打游戏用的

ZH119289 发表于 2025-12-3 11:35

无从学起啊、{:1_937:}
页: [1] 2 3 4 5
查看完整版本: 关于Mac激活Navicat17.3.X版本无法保存密码问题临时解决方法