原理:为什么改 Bundle ID 就能多开

macOS 通过 Bundle ID 来识别应用的唯一性。微信的 Bundle ID 是固定的,系统只允许同时运行一个实例。多开的核心思路是:复制一份微信应用,修改副本的 Bundle ID,再重新签名。修改后,系统会把副本当成一个全新的应用,数据目录也完全独立(比如 ~/Library/Containers/com.tencent.xinWeChat2),两个微信互不干扰。

操作步骤

1. 部署多开管理工具

先克隆管理脚本并做好准备工作。

2. 创建微信副本

运行脚本创建第二个微信实例(WeChat2),脚本会自动完成复制、修改 Bundle ID、重新签名等操作。

3. 启动双开

同时启动两个微信实例后,会看到两个独立的登录窗口,分别登录不同账号即可。

4. 验证运行状态

检查进程确认两个微信实例都在正常运行。

日常使用技巧

固定到 Dock 栏:启动 WeChat2 后,在 Dock 栏找到图标,右键点击 → "选项" → "在 Dock 中保留",后续直接从 Dock 启动。

需要三开、四开:按相同步骤创建 WeChat3、WeChat4,脚本支持交互式菜单管理多个副本。

微信升级后怎么办

这一步容易踩坑。微信通过 App Store 或自动更新升级后,WeChat2 可能打不开,或者打开后和原版微信冲突——因为升级过程会覆盖副本中的文件并重置 Bundle ID,系统又把两个微信当成同一个应用了。

好消息是聊天记录不会丢失。微信的数据存储在独立的容器目录 ~/Library/Containers/com.tencent.xinWeChat2 中,和应用本身是分离的。只需要重新执行一遍创建副本的步骤,数据会自动关联回来。如果有多个副本,对每个副本分别重建即可。

几个注意事项

  • 首次打开副本提示"已损坏":右键点击"打开"即可绕过
  • 删除副本:rm -rf /Applications/WeChat2.app
  • 清理数据:同时删除 ~/Library/Containers/com.tencent.xinWeChat2

这个案例本身就很好地展示了 AI 编程工具的一个实用场景:你不需要会写 shell 脚本,不需要理解代码签名机制,只要能清楚描述你的需求,Claude Code 就能帮你搞定从脚本编写到问题排查的全过程——甚至还能把解决方案整理成一篇可复用的教程。对于独立开发者来说,这种"把琐碎的系统配置任务丢给 AI"的工作方式,值得养成习惯。