Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

wechat-multi

macOS 微信多开工具 - 通过应用克隆和 Bundle ID 修改实现多实例运行。

功能特性

  • 微信多开:在 macOS 上同时运行多个微信实例
  • 自动检测:支持 WeChat.app 和 微信.app,自动检测已安装的版本
  • 安全可靠:使用 ad-hoc 签名,不修改原版微信
  • 两种实现:提供 Shell 脚本版本和 Go 二进制版本
  • 交互式管理:支持交互式菜单和重命名功能

工作原理

核心思路

  1. 复制 /Applications/WeChat.app 到同目录
  2. 修改副本的 Info.plist 中的 CFBundleIdentifier
  3. 重新签名副本应用
  4. 使用 open -n 启动多个实例

为什么能多开

macOS 通过 CFBundleIdentifier 唯一标识一个应用。同名应用(bundle ID 相同)只能运行一个实例。修改 bundle ID 后,系统会将其视为独立应用。

系统要求

  • macOS 系统
  • 已安装微信(/Applications/WeChat.app 或 /Applications/微信.app)
  • sudo 权限(用于复制和重新签名应用到 /Applications 目录)
  • 系统工具:ditto、codesign、xattr、PlistBuddy

安装与构建

Go 版本(推荐)

# 克隆仓库
git clone https://github.com/robinxaix/multiwechat.git
cd multiwechat

# 构建
go build -o wechat-multi .

# 运行(需要 sudo 权限)
sudo ./wechat-multi --help

Shell 版本

# 直接使用
sudo ./wechat-multi.sh --help

使用方法

快速开始

# 创建一个微信副本并启动(双开)
sudo ./wechat-multi auto

# 创建 3 个微信副本并启动(多开)
sudo ./wechat-multi multi 3

# 微信更新后重建所有副本
sudo ./wechat-multi rebuild

# 关闭所有副本(保留原版微信)
sudo ./wechat-multi kill

完整命令列表

Go 版本命令

sudo ./wechat-multi auto             # 创建一个副本并启动
sudo ./wechat-multi multi N          # 创建 N 个副本并启动
sudo ./wechat-multi setup            # 仅创建副本,不启动
sudo ./wechat-multi start            # 启动原版微信和所有已有副本
sudo ./wechat-multi rebuild          # 重建所有已有副本
sudo ./wechat-multi kill             # 关闭所有副本(保留原版)
sudo ./wechat-multi rename           # 交互式重命名副本显示名称
sudo ./wechat-multi menu             # 交互式管理菜单
sudo ./wechat-multi --force          # 跳过确认提示

Shell 版本命令

sudo ./wechat-multi.sh auto          # 创建一个副本并启动
sudo ./wechat-multi.sh multi N       # 创建 N 个副本并启动
sudo ./wechat-multi.sh setup         # 仅创建副本
sudo ./wechat-multi.sh start         # 启动原版和已有副本
sudo ./wechat-multi.sh rebuild       # 重建所有副本
sudo ./wechat-multi.sh kill          # 关闭所有副本
sudo ./wechat-multi.sh --force       # 跳过确认提示

使用示例

# 创建一个微信副本(命名为"小绿书")
sudo ./wechat-multi setup

# 启动原版微信和"小绿书"
sudo ./wechat-multi start

# 创建 3 个带编号的副本(小绿书1、小绿书2、小绿书3)
sudo ./wechat-multi multi 3

# 微信更新后重新构建所有副本
sudo ./wechat-multi rebuild

# 重命名副本的显示名称
sudo ./wechat-multi rename

# 使用交互式菜单管理所有实例
sudo ./wechat-multi menu

命令详解

auto - 快速双开

创建一个名为 小绿书.app 的微信副本,并启动原版微信和副本。

sudo ./wechat-multi auto

multi N - 多开

创建 N 个带数字编号的副本(小绿书1.app、小绿书2.app 等),并启动所有实例。

# 创建 3 个副本
sudo ./wechat-multi multi 3

setup - 仅创建

仅创建微信副本,不启动任何实例。适用于需要先配置再启动的场景。

sudo ./wechat-multi setup

start - 仅启动

启动原版微信和所有已创建的副本。不创建新副本。

sudo ./wechat-multi start

rebuild - 重建副本

检测所有已存在的副本并重新构建。适用于微信或系统更新后。

sudo ./wechat-multi rebuild

kill - 关闭副本

通过 AppleScript 优雅关闭所有小绿书副本,保留原版微信运行。

sudo ./wechat-multi kill

rename - 重命名

交互式重命名副本的显示名称。

sudo ./wechat-multi rename

menu - 交互式菜单

提供交互式 TUI(文本用户界面)管理所有微信实例。

sudo ./wechat-multi menu

技术细节

副本命名规则

  • auto 命令创建:小绿书.app
  • multi N 命令创建:小绿书1.app、小绿书2.app、...
  • 副本显示名称与应用名称一致

Bundle ID 生成

每个副本会生成唯一的 CFBundleIdentifier,通过扫描 /Applications 目录下所有应用的 Info.plist 避免冲突。

重签名流程

  1. 删除旧签名目录 Contents/_CodeSignature
  2. 移除隔离属性 com.apple.quarantine(防止 Gatekeeper 拦截)
  3. 执行 ad-hoc 签名:codesign --force --deep --sign - --timestamp=none

版本信息

每个副本会创建 .wechat_source_info 文件,记录创建时间和源版本号。

项目结构

wechat-multi/           # 项目根目录
├── main.go            # Go 版本源码
├── wechat-multi.sh    # Shell 版本脚本
├── go.mod             # Go 模块定义
├── icon/              # 图标资源
├── docs/              # 文档目录
│   └── wechat-multi-analysis.md  # 架构分析文档
├── .gitignore         # Git 忽略文件
├── LICENSE            # 许可证
└── README.md          # 本文件

故障排除

常见问题

  1. 权限错误:确保使用 sudo 运行命令
  2. 微信未找到:检查微信是否安装在 /Applications/WeChat.app 或 /Applications/微信.app
  3. 签名失败:确保使用 sudo 运行,且 Keychain 可访问(codesign 是 macOS 自带工具,无需安装 Xcode Command Line Tools)
  4. 副本无法启动:尝试使用 rebuild 命令重新构建副本

调试模式

Go 版本支持详细的错误信息输出,帮助诊断问题。

开发说明

Go 版本特点

  • 纯标准库实现,无外部依赖
  • 单文件架构,便于维护
  • 完整的错误处理
  • 交互式用户确认

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request。

免责声明

本工具仅供学习和研究使用。使用本工具产生的任何后果由用户自行承担。请遵守微信使用条款和当地法律法规。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages