macOS 微信多开工具 (WeChat Multi-Instance)
一个专为 macOS 设计的微信多开解决方案,让您可以同时运行多个微信实例,完美解决工作与生活账号分离的需求。
🚨 重要说明 - 请务必阅读
关于微信多开的合规性
本工具仅供学习和研究使用,通过合法的应用克隆技术实现微信多开功能。使用前请确保:
- 遵守微信用户协议和相关法律法规
- 不用于任何商业或违法用途
- 建议仅用于工作与生活账号的合理分离
⚡ 快速使用指南
- 系统要求:macOS 10.14 或更高版本
- 权限需求:需要管理员权限进行应用克隆
- 兼容性:支持最新版本的微信客户端
📋 功能特性
- 🚀 完美克隆:基于原版微信完整克隆,功能100%一致
- 🔧 智能管理:支持创建、启动、删除、重建等完整生命周期管理
- 📊 多实例支持:理论上支持无限个微信实例同时运行
- 🎨 独立容器:每个实例拥有独立的数据容器,互不干扰
- 🔒 版本锁定:支持锁定克隆版本,防止被自动更新覆盖
- 🛡️ 安全可靠:使用系统原生工具,安全性有保障
📦 安装方法
下载脚本
将以下脚本保存为 wechat-multi.sh 文件:
#!/usr/bin/env bash set -euo pipefail ORIG_APP="/Applications/WeChat.app" BUNDLE_BASE="com.tencent.xinWeChat" require_tools() { for t in /usr/libexec/PlistBuddy codesign xattr; do command -v ${t%% *} >/dev/null 2>&1 || { echo "缺少工具: $t"; exit 1; } done [[ -d "$ORIG_APP" ]] || { echo "未找到原版 WeChat: $ORIG_APP"; exit 1; } } app_path_for_idx() { local idx="$1" echo "/Applications/WeChat-M${idx}.app" } bid_for_idx() { local idx="$1" echo "${BUNDLE_BASE}.m${idx}" } clone_one() { local idx="$1" local NEW_APP; NEW_APP="$(app_path_for_idx "$idx")" local NEW_BID; NEW_BID="$(bid_for_idx "$idx")" echo ">>> 克隆 WeChat -> ${NEW_APP} (BundleID=${NEW_BID})" sudo rm -rf "$NEW_APP" sudo cp -R "$ORIG_APP" "$NEW_APP" local PLIST="$NEW_APP/Contents/Info.plist" sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $NEW_BID" "$PLIST" \ || sudo /usr/libexec/PlistBuddy -c "Add :CFBundleIdentifier string $NEW_BID" "$PLIST" sudo /usr/libexec/PlistBuddy -c "Set :CFBundleName WeChat-M${idx}" "$PLIST" || true sudo /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName WeChat-M${idx}" "$PLIST" || true sudo xattr -rc "$NEW_APP" sudo codesign --force --deep --sign - --timestamp=none "$NEW_APP" echo ">>> 完成: $NEW_APP" echo "容器目录将初始化到: ~/Library/Containers/$(bid_for_idx "$idx")" } launch_one() { local idx="$1" local NEW_APP; NEW_APP="$(app_path_for_idx "$idx")" [[ -d "$NEW_APP" ]] || { echo "未发现 ${NEW_APP},请先执行 create ${idx}"; exit 1; } open -a "$NEW_APP" } remove_one() { local idx="$1" local NEW_APP; NEW_APP="$(app_path_for_idx "$idx")" local NEW_BID; NEW_BID="$(bid_for_idx "$idx")" echo ">>> 删除 App 与容器数据 (WeChat-M${idx})" sudo rm -rf "$NEW_APP" rm -rf "$HOME/Library/Containers/${NEW_BID}" echo ">>> 已删除" } rebuild_one() { local idx="$1" echo ">>> 以当前最新版原 App 重新构建 WeChat-M${idx}" clone_one "$idx" } list_all() { ls -1 /Applications | grep -E "^WeChat(-M[0-9]+)?\.app$" || true } lock_one() { local idx="$1" local NEW_APP; NEW_APP="$(app_path_for_idx "$idx")" [[ -d "$NEW_APP" ]] || { echo "未发现 ${NEW_APP}"; exit 1; } echo ">>> 锁定 ${NEW_APP}(防止被自动更新覆盖)" sudo chflags -R uchg "$NEW_APP" echo ">>> 已锁定。要解锁:sudo chflags -R nouchg \"$NEW_APP\"" } unlock_one() { local idx="$1" local NEW_APP; NEW_APP="$(app_path_for_idx "$idx")" [[ -d "$NEW_APP" ]] || { echo "未发现 ${NEW_APP}"; exit 1; } echo ">>> 解锁 ${NEW_APP}" sudo chflags -R nouchg "$NEW_APP" } usage() { cat <<'EOF' 用法: sudo ./wechat-multi.sh create <idx> # 创建 WeChat-M<idx> 克隆(如 idx=2 -> WeChat-M2.app) ./wechat-multi.sh launch <idx> # 启动对应克隆 sudo ./wechat-multi.sh remove <idx> # 移除克隆及其容器数据 sudo ./wechat-multi.sh rebuild <idx> # 原版更新后,按当前原版重建克隆 ./wechat-multi.sh list # 列出 /Applications 下的 WeChat 与克隆 sudo ./wechat-multi.sh lock <idx> # 锁定克隆,防止被自动更新覆盖 sudo ./wechat-multi.sh unlock <idx> # 解除锁定 示例: sudo ./wechat-multi.sh create 2 ./wechat-multi.sh launch 2 EOF } main() { local cmd="${1:-}"; shift || true case "${cmd}" in create) require_tools; clone_one "${1:?缺少 idx}";; launch) launch_one "${1:?缺少 idx}";; remove) remove_one "${1:?缺少 idx}";; rebuild) require_tools; rebuild_one "${1:?缺少 idx}";; list) list_all;; lock) lock_one "${1:?缺少 idx}";; unlock) unlock_one "${1:?缺少 idx}";; *) usage;; esac } main "$@"
设置执行权限
chmod +x wechat-multi.sh
🚀 使用说明
基本操作流程
- 确保原版微信已安装:脚本会基于
/Applications/WeChat.app进行克隆 - 创建微信克隆:使用
create命令创建新的微信实例 - 启动微信实例:使用
launch命令启动指定的微信实例
详细命令说明
创建微信克隆
# 创建第二个微信实例(WeChat-M2) sudo ./wechat-multi.sh create 2 # 创建第三个微信实例(WeChat-M3) sudo ./wechat-multi.sh create 3
启动微信实例
# 启动第二个微信实例 ./wechat-multi.sh launch 2 # 启动第三个微信实例 ./wechat-multi.sh launch 3
管理微信实例
# 列出所有微信应用 ./wechat-multi.sh list # 删除微信实例及其数据 sudo ./wechat-multi.sh remove 2 # 重建微信实例(原版更新后使用) sudo ./wechat-multi.sh rebuild 2
版本锁定功能
# 锁定微信实例,防止被自动更新 sudo ./wechat-multi.sh lock 2 # 解锁微信实例 sudo ./wechat-multi.sh unlock 2
⚙️ 高级配置
实例命名规则
- 原版微信:
WeChat.app - 第二实例:
WeChat-M2.app - 第三实例:
WeChat-M3.app - 以此类推...
数据存储位置
每个微信实例都有独立的数据容器:
- 原版微信:
~/Library/Containers/com.tencent.xinWeChat/ - 第二实例:
~/Library/Containers/com.tencent.xinWeChat.m2/ - 第三实例:
~/Library/Containers/com.tencent.xinWeChat.m3/
Bundle ID 规则
- 原版微信:
com.tencent.xinWeChat - 第二实例:
com.tencent.xinWeChat.m2 - 第三实例:
com.tencent.xinWeChat.m3
🔧 系统要求
- 操作系统:macOS 10.14 或更高版本
- 原版微信:需要先安装官方微信客户端
- 系统工具:PlistBuddy、codesign、xattr(系统自带)
- 权限要求:管理员权限(用于应用克隆和签名)
💡 使用技巧
🎯 最佳实践
- 先安装原版:确保从 App Store 或官网安装最新版微信
- 按需创建:根据实际需要创建微信实例,避免创建过多
- 定期重建:原版微信更新后,及时重建克隆实例
- 数据备份:重要聊天记录建议定期备份
🔄 更新策略
当原版微信更新后:
# 方法一:重建现有实例(推荐) sudo ./wechat-multi.sh rebuild 2 # 方法二:删除后重新创建 sudo ./wechat-multi.sh remove 2 sudo ./wechat-multi.sh create 2
🛡️ 防止自动更新
如果您希望保持某个版本不被更新:
# 锁定实例 sudo ./wechat-multi.sh lock 2 # 需要更新时再解锁 sudo ./wechat-multi.sh unlock 2
📱 移动端配合使用
手机端操作技巧
为了更好地管理多个微信账号,建议:
- 飞行模式切换:在手机端开启飞行模式后退出微信,可以避免多端冲突
- 账号标记:为不同的微信实例设置不同的头像或昵称标识
- 消息同步:注意多端登录时的消息同步设置
🐛 常见问题
Q: 创建克隆时提示权限不足?
A: 确保使用 sudo 运行 create 命令,脚本需要管理员权限进行应用克隆。
Q: 启动克隆后无法登录?
A: 检查网络连接,确保微信服务器可访问。如果问题持续,尝试重建克隆。
Q: 原版微信更新后克隆无法使用?
A: 使用 rebuild 命令重新构建克隆实例。
Q: 如何彻底删除所有克隆?
A: 使用 remove 命令删除每个克隆,或手动删除 /Applications/WeChat-M*.app。
📄 免责声明
- 本工具仅供学习和研究使用
- 请遵守微信用户协议和相关法律法规
- 不建议用于商业用途或违反服务条款的行为
- 使用前请备份重要数据
- 作者不承担因使用本工具造成的任何损失
🐛 问题反馈
如果您遇到任何问题或有功能建议,请:
- 检查系统要求和权限设置
- 查看错误日志信息
- 尝试重新安装原版微信
- 联系技术支持获取帮助
💖 支持作者
如果这个工具对您有帮助,欢迎:
- ⭐ 给项目点个星
- 🔄 分享给有需要的朋友
- 💡 提供改进建议
- ☕ 请作者喝杯咖啡
注意:使用本工具时请确保遵守相关法律法规和服务条款,仅用于合法合规的用途。