微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)
【免费下载链接】WeChatExporter一个可以快速导出、查看你的微信聊天记录的工具项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter
你有没有想过一个问题:微信十年不提供官方导出功能,我们的聊天记录到底还算不算"自己的数据"?手机一换、系统一崩、账号一出问题,成百上千条对话就可能再也找不回来。今天要聊的 WeChatExporter,就是一款免费开源的微信聊天记录导出工具,它不越狱、不折腾,能把 iPhone 里的文字、语音、图片、视频全部搬回电脑,并且导出的记录可以在本地 HTML 页面里随时翻阅。这篇文章会带你走一遍完整的微信聊天记录备份流程,从数据提取、工具安装到导出查看,每一步都配有可复现的操作说明,遇到报错也有对应的自查清单。
先回答三个关键问题:它能做什么、适合谁、有什么限制
在动手之前,把预期管理做好,后面才不会踩坑。
它能做什么
- 无需越狱手机,即可读取 iPhone 备份中的微信数据
- 完整解析并导出文字、图片、语音、视频、小视频、动画表情、分享链接、位置、名片、语音/视频通话、系统消息等类型
- 语音消息自动转码为通用格式,可在任何播放器里打开
- 导出的记录以本地网页形式呈现,离线也能看
它适合谁
- 想给家庭群聊、恋爱记录做永久备份的个人用户
- 需要归档客户沟通、项目记录的商务人士
- 需要留存聊天证据、做内容研究的专业用户
它目前的限制
- 数据来源目前仅支持 iOS 系统;安卓机可以先把聊天记录迁移到 iPad 再导出
- 官方适配的运行环境是 macOS;Windows 与安卓虽"能用但没适配",需自行折腾
- 部分特殊消息类型只做占位显示(如"分享链接""位置"),不展开正文
一句话总结:这是一款"能用、免费、可扩展"的微信备份工具,适合愿意花半小时搞定本地归档的普通用户。
第一站:从 iPhone 到电脑,把微信数据"搬"出来
工具本身不碰手机,它读取的是你电脑上已有的微信数据文件。所以第一步是把数据导出来,整个过程可以看作一条流水线。
1. 用 iTunes 做一次不加密的整机备份
把 iPhone 连上 Mac,打开 iTunes,选择"立即备份"。这里有一个必须注意的红线:不要勾选"加密本地备份"。一旦加密,后面的工具将无法读取数据文件,这是新手最常踩的第一个坑。
2. 用 iMazing 提取微信的 Documents 文件夹
iTunes 的备份是整机级别的,而 WeChatExporter 只需要微信那一部分。此时用 iMazing 这类第三方工具,在备份中定位微信应用,把它的 Documents 文件夹完整导出到电脑上,存到哪都行,记住路径即可。

3. 认识一下你手上的"原材料"
导出完成后,Documents 文件夹内部大致长这样:里面有几个 32 位 MD5 命名的子文件夹,对应这台手机上登录过的不同微信账号;每个账号目录下又包含 DB、Audio、Img、Video 等子目录,分别存放数据库和各类媒体文件。其中DB/MM.sqlite就是聊天记录的"总账本",工具的核心工作就是解析它。
第二站:装环境、跑项目,15 分钟内让工具站起来
先备齐两样运行环境
WeChatExporter 基于 Node.js 开发,运行在 NW.js(node-webkit)桌面容器里,所以两样都要装:
| 组件 | 作用 | 版本建议 |
|---|---|---|
| Node.js | 项目运行与依赖管理 | 8.11.3 或 10.16.3 |
| NW.js | 桌面应用运行环境 | 0.32.1 或 0.40.1 |
版本号不是随便写的——它们和预编译的 SQLite 模块严格对应,后面会用到。
拉取项目并安装依赖
git clone https://gitcode.com/gh_mirrors/wec/WeChatExporter cd WeChatExporter/development npm install跳过编译地狱:直接用预编译模块
项目里的 SQLite3 需要针对 NW.js 重新编译,过程相当折磨人(要装 Xcode、配 node-gyp、指定 Python 2.7 路径……)。懒人福音来了:项目仓库的development/framework/目录下已经放好了编译好的node_sqlite3.node文件,两个版本二选一:
node-webkit-v0.32.1-darwin-x64对应 nodejs 8.11.3 + nwjs 0.32.1node-webkit-v0.40.1-darwin-x64对应 nodejs 10.16.3 + nwjs 0.40.1
把对应版本的文件夹整个拷贝到node_modules/sqlite3/lib/binding/目录下即可,一步到位。
启动工具
npm start或者手动指定 NW.js 可执行文件:
/path/to/nw/nwjs.app/Contents/MacOS/nwjs .看到界面弹出来,说明环境这块已经通关了。
第三站:三步完成一次完整的聊天记录导出
工具的主流程分两段:先"解析并导出数据",再"直接查看聊天内容"。按下面这个顺序操作,一次就能跑通。
第 1 步:选择微信账号和聊天对象
进入界面后点击"开始原始数据分析",选择之前导出的 Documents 文件夹。左上角会列出这台手机上登录过的所有微信账号(以 MD5 命名),点选任意一个,左下角立刻出现与你聊过天的联系人列表。
小细节:列表默认只显示聊天消息总数超过 100 条的联系人或群聊,冷门的对话会被自动隐藏,界面更清爽。

第 2 步:确认目标并配置导出参数
点击左下角任意聊天对象,右侧会实时预览最近 10 条记录,帮你确认"没选错人"。确认无误后,右上角会出现"某某与某某的聊天记录"红色提示,点击进入下一步。
在导出设置页里需要填两项:
- 数据导出目录:导出的文件放哪里
- 日期区间:只导出某段时间的聊天;不填则导出全部
点击"开始生成数据",工具会逐条处理消息:图片原图与缩略图分开归档、语音调用 silk 解码器转成 mp3、视频与缩略图也一并搬运。处理完成后,指定目录下会生成一个完整的 output 文件夹,此后 Documents 目录就没用了,可以删除。
第 3 步:回到主页,开始翻阅导出的聊天记录
回到工具主页,选择"显示聊天记录",填入刚才的 output 目录,一份完整的聊天记录就在眼前了:文字、语音(带播放条)、图片、视频一应俱全,界面模拟真实的聊天窗口,还支持点击图片放大查看。

之后再想查看,直接进入"显示聊天记录"页面即可,不需要重新解析。
它能导出的消息类型一览
整理成表格,方便你对照自己的需求:
| 消息类型 | 导出表现 |
|---|---|
| 文字消息 | 完整保留,可显示 QQ 表情 |
| 图片消息 | 原图 + 缩略图,点击可放大 |
| 语音消息 | 自动转码为 mp3,网页内直接播放 |
| 视频/小视频 | 保留 mp4 原文件,支持内嵌播放 |
| 动画表情 | 占位显示 |
| 分享链接 | 占位显示 |
| 位置/名片 | 占位显示 |
| 语音/视频通话 | 占位显示 |
| 系统消息 | 占位显示(如撤回提示) |
诚实地说,占位类型目前不展开正文,这是项目作者在 README 里也坦承的"不完善之处",但这并不影响核心的文字、图片、语音、视频备份价值。
避坑清单:导出报错自查手册
遇到问题先别慌,按下面的清单逐项排查,多数问题都能自己解决。
Q1:报错里出现 xcodebuild / Xcode 字样说明你要走源码编译路线,而系统没装 Xcode。装好后在终端执行sudo xcodebuild -license,按空格翻完协议后输入agree,再回到编译步骤。当然,最省事的是直接用预编译文件绕开编译。
Q2:提示无法读取备份文件九成是 iTunes 备份被加密了。重新做一次不勾选"加密本地备份"的备份,再走一遍流程。
Q3:导出过程卡住或界面无响应
- 检查磁盘剩余空间是否充足(语音转码和图片搬运都很吃空间)
- 关掉其他占用内存的程序
- 重启工具,换个输出目录再试
Q4:导出的语音播不了先确认 output 目录下的audio文件夹里有没有生成 mp3 文件;再检查 silk 解码器相关文件是否完整(converter.sh、ffmpeg、silk/decoder、silk/libSKP_SILK_SDK.a四件套缺一不可)。
Q5:其他疑难杂症软件右上角【工具】→【导出运行日志】,会导出系统版本、Node 版本、NW.js 版本、sqlite3 绑定目录等信息——最常见的病因就是"版本不符"。把日志内容连同问题描述一起贴到项目 issue 区,开发者回复 PR 和问题都很及时。
进阶玩法:让备份变成习惯,而不是一次性的心血来潮
从手动到自动:写一个简单的备份脚本
把"备份"变成定时任务,才是真正意义上的数据保护。思路很简单:写一个 shell 脚本,固定好数据源和输出目录,每次运行自动完成"执行导出 → 验证结果 → 压缩归档"三步,再挂到 cron 定时执行(比如每周日凌晨 3 点)。具体脚本逻辑可根据自己的目录结构微调,核心就一句话:让机器替你记得备份这件事。
备份策略参考
| 用户类型 | 频率建议 | 存储建议 |
|---|---|---|
| 个人用户 | 每季度一次 | 本地硬盘 + 网盘同步 |
| 商务用户 | 每周增量 + 每月全量 | 加密硬盘 + 定期归档 |
| 专业用户 | 每日增量 + 每周全量 | 多重加密 + 离线存储 |
隐私底线
所有数据都在本地处理,但请务必遵守三条原则:
- 只备份自己的聊天记录,不碰他人数据
- 用加密容器存放备份文件
- 遵循"3-2-1"原则:3 份副本、2 种介质、1 份离线
聊聊它的技术底子:为什么这么轻快
WeChatExporter 的架构很"古典"但很扎实:
- 前端:AngularJS + Bootstrap + UI-Router,负责界面交互与路由
- 后端:Node.js + Express,处理文件系统操作与数据解析
- 数据库:SQLite3,直接读取微信的 MM.sqlite 并重建为新的 data.sqlite
- 桌面容器:NW.js(node-webkit),让 Web 技术栈跑成桌面应用
- 构建工具:Grunt + nw-builder,负责打包分发
因为完全开源,你可以按需改造:模板在development/templates/、控制器在development/js/、样式在development/css/。想加新消息类型、适配 Windows、支持导出 HTML 静态包,都有现成的扩展点。
写在最后:备份不是选项,是责任
微信聊天记录里藏着的,是家人的叮嘱、朋友的玩笑、工作上的重要决策,以及那些再也无法复制的瞬间。WeChatExporter 的价值不在于功能多么炫酷,而在于它把"导出聊天记录"这件官方一直没做的事,用免费开源的方式交还到了用户手里。
花半小时按本文走一遍流程,你就拥有了一份永不丢失的数字记忆副本。动手之前,再帮你把整个流程浓缩成一句话:不加密的 iTunes 备份 → iMazing 取出 Documents → 装好 Node.js 与 NW.js → 跑起工具解析导出 → 在本地网页里慢慢回味。
如果你对项目本身感兴趣,想查看源码细节、完整 README 文档,或参与功能改进,项目仓库位于development/目录,官方说明文档就在仓库根目录的 README.md 中,随时可以翻阅。
重要提醒:请仅将本工具用于个人合法数据的备份,尊重他人隐私,切勿尝试导出他人聊天记录。定期备份,让每一段对话都能穿越时间。
【免费下载链接】WeChatExporter一个可以快速导出、查看你的微信聊天记录的工具项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考