跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashWeChat

macOS 微信双开与多开脚本教程(支持 4.X 及以上版本)

介绍在 macOS 系统下通过 Shell 脚本实现微信多开的方法。主要步骤包括创建脚件、赋予执行权限、修改应用 Bundle ID 及重新签名。脚本支持一键双开、多开指定数量副本以及更新后自动重建功能,解决了微信更新导致副本失效的问题。

时间旅人发布于 2026/3/30更新于 2026/7/2651 浏览
macOS 微信双开与多开脚本教程(支持 4.X 及以上版本)

macOS 微信双开与多开脚本教程(支持 4.X 及以上版本)

一、准备工作

  1. 确保系统为 macOS,并已正确安装官方微信(路径:/Applications/WeChat.app)。
  2. 确认系统中具备以下工具:
    • ditto
    • codesign
    • xattr
    • /usr/libexec/PlistBuddy

打开终端(Terminal),确保拥有 sudo 权限。

二、一键双开脚本(推荐方法)

⚠️ 免责声明
本教程及脚本仅供学习和研究使用,方法来源于网络。请自行评估风险与适用性。若因操作导致系统异常、微信账号异常或其他损失,均由使用者本人承担,与本文作者无关。

终端操作|创建脚本文件

我们需要先新建一个脚本文件,把前面给出的 wechat-2.sh 代码保存进去。

1. 新建文件

在终端中输入:

cd ~
touch wechat-2.sh

这样就在用户主目录下新建了一个 wechat-2.sh 文件。

2. 打开文件进行编辑

你可以用以下几种方法打开文件:

方法 1:用文本编辑器(推荐)

如果你习惯图形界面,可以用系统自带的 TextEdit:

open -e wechat-2.sh

把脚本粘贴进去,然后保存即可。

方法 2:用 VS Code(如果已安装)
code wechat-2.sh
方法 3:用终端内置编辑器 nano
nano wechat-2.sh
  • 复制我提供的脚本内容,粘贴进去;
  • 粘贴完成后,按下 Ctrl + O 保存,然后回车;
  • 按 Ctrl + X 退出。
3. 赋予执行权限

保存文件后,需要让脚本有运行权限:

chmod +x wechat-2.sh

这样 wechat-2.sh 就变成了可执行文件。

4. 运行脚本

关闭所有微信进程

sudo ./wechat-2.sh kill

更新后重建副本

sudo ./wechat-2.sh rebuild --force

多开运行(生成多个小绿书副本)

sudo ./wechat-2.sh multi 3 --force

会自动生成:小绿书 1、小绿书 2、小绿书 3。

第一次运行(自动复制 + 双开)

sudo ./wechat-2.sh auto --force

系统会提示输入管理员密码,请输入你的 Mac 密码(输入时不会显示)。

👉 总结一下操作步骤:

  1. touch wechat-2.sh 新建文件
  2. nano wechat-2.sh 或 open -e wechat-2.sh 编辑脚本
  3. chmod +x wechat-2.sh 添加运行权限
  4. sudo ./wechat-2.sh auto --force 执行

三、完整脚本(支持双开、多开、更新后重建)

以下脚本包含 multi 多开 与 rebuild 重建副本 功能。

#!/bin/bash
# macOS WeChat Multi Instance Script
# Usage:
# sudo ./wechat-2.sh auto --force
# sudo ./wechat-2.sh multi 3 --force # 多开 3 个副本
# sudo ./wechat-2.sh rebuild --force # 更新后自动重建所有副本
set -euo pipefail
# 颜色
RED='\033[0;31m';GREEN='\033[0;32m';YELLOW='\033[1;33m';BLUE='\033[0;34m';NC='\033[0m'
# 默认路径
WECHAT_APP="/Applications/WeChat.app"
DEST_DIR="/Applications"
BASE_APP_NAME="小绿书"
FORCE=0

require_cmd(){
    command -v "$1">/dev/null 2>&1||{
        echo -e "${RED}缺少命令:$1${NC}"
        exit 1
    }
}

for cmd in ditto codesign xattr /usr/libexec/PlistBuddy; do
    require_cmd "$cmd"
done

check_wechat(){
    if [ ! -d "$WECHAT_APP" ]; then
        echo -e "${RED}未找到微信:$WECHAT_APP${NC}"
        exit 1
    fi
    echo -e "${GREEN}✓ 检测到微信已安装${NC}"
}

remove_app(){
    local dest="$DEST_DIR/$1"
    if [ -d "$dest" ]; then
        if [ "$FORCE" -eq 1 ]; then
            sudo rm -rf "$dest"
        else
            read -p "是否删除并重新创建 $1? (y/n): " yn
            [[ "$yn" =~ ^[Yy]$ ]] && sudo rm -rf "$dest"
        fi
    fi
}

copy_wechat(){
    local app_name=$1
    sudo ditto "$WECHAT_APP" "$DEST_DIR/$app_name"
}

modify_bundle_id(){
    local app_name=$1
    local info_plist="$DEST_DIR/$app_name/Contents/Info.plist"
    local new_id="com.tencent.xinWeChat.dual.$RANDOM"
    sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $new_id" "$info_plist"
    sudo /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName $app_name" "$info_plist" || true
}

resign_app(){
    local app_name=$1
    local dest="$DEST_DIR/$app_name"
    sudo rm -rf "$dest/Contents/_CodeSignature" || true
    sudo xattr -dr com.apple.quarantine "$dest" || true
    sudo codesign --force --deep --sign - --timestamp=none "$dest"
}

start_apps(){
    shift
    for app_name in "$@"; do
        open -n "$DEST_DIR/$app_name"
        sleep 1
    done
}

kill_wechat(){
    pkill -f "WeChat" || true
}

# 查找已存在的小绿书副本
list_existing_apps(){
    ls "$DEST_DIR" | grep "^$BASE_APP_NAME[0-9]*\.app$" || true
}

main(){
    case "${1:-}" in
        setup)
            check_wechat
            remove_app "${BASE_APP_NAME}.app"
            copy_wechat "${BASE_APP_NAME}.app"
            modify_bundle_id "${BASE_APP_NAME}.app"
            resign_app "${BASE_APP_NAME}.app"
            ;;
        start)
            start_apps "WeChat.app" "${BASE_APP_NAME}.app"
            ;;
        auto)
            check_wechat
            remove_app "${BASE_APP_NAME}.app"
            copy_wechat "${BASE_APP_NAME}.app"
            modify_bundle_id "${BASE_APP_NAME}.app"
            resign_app "${BASE_APP_NAME}.app"
            start_apps "WeChat.app" "${BASE_APP_NAME}.app"
            ;;
        multi)
            local count=${2:-2}
            check_wechat
            for i in $(seq 1 "$count"); do
                local app_name="${BASE_APP_NAME}${i}.app"
                remove_app "$app_name"
                copy_wechat "$app_name"
                modify_bundle_id "$app_name"
                resign_app "$app_name"
            done
            start_apps $(for i in $(seq 1 "$count"); do echo "${BASE_APP_NAME}${i}.app"; done)
            ;;
        rebuild)
            check_wechat
            echo -e "${BLUE}检测到系统更新或微信更新,正在重建副本...${NC}"
            local apps=$(list_existing_apps)
            for app_name in $apps; do
                echo -e "${YELLOW}重建 $app_name ...${NC}"
                remove_app "$app_name"
                copy_wechat "$app_name"
                modify_bundle_id "$app_name"
                resign_app "$app_name"
            done
            echo -e "${GREEN}✓ 所有副本已重新生成${NC}"
            ;;
        -k|kill)
            kill_wechat
            ;;
        -h|--help|"")
            echo "用法:$0 {setup|start|auto|multi N|rebuild|kill} [--force]"
            ;;
        *)
            echo -e "${RED}未知参数:$1${NC}"
            exit 1
            ;;
    esac
}

for arg in "$@"; do
    [[ "$arg" == "--force" ]] && FORCE=1
done
main "$@"

四、手动操作流程(可选)

如果你只想多开 1 次,可以手动操作:

  1. 验证结果
    打开 Finder > 应用程序,若能看到 小绿书.app(图标可能灰色或正常),即可双开。

重新签名应用

sudo codesign --force --deep --sign - /Applications/小绿书.app

修改应用唯一标识符

sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier net.maclub.wechat" /Applications/小绿书.app/Contents/Info.plist

复制应用

sudo cp -R /Applications/WeChat.app /Applications/小绿书.app

五、多开操作(创建多个副本)

# 创建 3 个副本:小绿书 1、小绿书 2、小绿书 3
sudo ./wechat-2.sh multi 3 --force

六、更新后自动重建副本

为什么需要重建?
  • 微信每次更新后,/Applications/WeChat.app 会被覆盖;
  • 之前生成的副本可能失效或无法正常启动;
  • 使用 rebuild 模式,可以自动检测所有小绿书副本并重新克隆。
使用方法
# 一键重建已存在的所有副本
sudo ./wechat-2.sh rebuild --force
效果
  • 脚本会自动找到 /Applications/ 下所有 小绿书 N.app;
  • 删除旧副本并重新复制新版微信;
  • 重新生成 Bundle ID 并签名;
  • 保持原来的命名(小绿书 1、小绿书 2…)。

七、总结

  • 双开:适合 2 个账号同时使用;
  • 多开:通过 multi 参数创建多个副本,实现无限多开;
  • 更新后重建:使用 rebuild 一键重建所有副本,免去升级后的手动操作。

目录

  1. macOS 微信双开与多开脚本教程(支持 4.X 及以上版本)
  2. 一、准备工作
  3. 二、一键双开脚本(推荐方法)
  4. 终端操作|创建脚本文件
  5. 1. 新建文件
  6. 2. 打开文件进行编辑
  7. 方法 1:用文本编辑器(推荐)
  8. 方法 2:用 VS Code(如果已安装)
  9. 方法 3:用终端内置编辑器 nano
  10. 3. 赋予执行权限
  11. 4. 运行脚本
  12. 三、完整脚本(支持双开、多开、更新后重建)
  13. macOS WeChat Multi Instance Script
  14. Usage:
  15. sudo ./wechat-2.sh auto --force
  16. sudo ./wechat-2.sh multi 3 --force # 多开 3 个副本
  17. sudo ./wechat-2.sh rebuild --force # 更新后自动重建所有副本
  18. 颜色
  19. 默认路径
  20. 查找已存在的小绿书副本
  21. 四、手动操作流程(可选)
  22. 五、多开操作(创建多个副本)
  23. 创建 3 个副本:小绿书 1、小绿书 2、小绿书 3
  24. 六、更新后自动重建副本
  25. 为什么需要重建?
  26. 使用方法
  27. 一键重建已存在的所有副本
  28. 效果
  29. 七、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Prism 工具简介、安装使用及案例应用详解
  • 小学子讲技术 - OpenClaw 循环检测机制:防止 AI Agent 陷入死循环
  • 手机端去除豆包 AI 视频水印的几种方案
  • Axure 实现 AI 对话机器人原型,支持自动回复与打字效果
  • Linux Socket 套接字编程基础概念
  • Linux 进程等待与程序替换详解:僵尸进程防治及 exec 函数应用
  • OpenClaw 网关与子节点配对指南:构建分布式 AI 助手网络
  • Cube Studio 云原生 AI 平台入门与实战指南
  • OpenManus 开源 AI Agent 核心架构与工具链解析
  • MacOS 快速部署 Open WebUI 的 Docker 方案
  • Mac 下使用 Docker 部署 FastGPT 构建 AI 私有知识库
  • SRS 流媒体服务器安装配置与使用指南
  • 荣耀 MWC 2026 展示人形机器人,手机厂商布局具身智能
  • Stable Diffusion 与 Qwen-Image-2512 深度对比:云端实测解析
  • Supabase 实战指南:数据库、SDK 与本地部署
  • Git 常用操作命令速查手册
  • 线性动态规划基础详解:4 道经典例题与优化技巧
  • Windows 10 离线安装 WSL2 Ubuntu 22.04.5 LTS 简明教程
  • Java 集合框架核心知识:List、Set、Map 区别与实现
  • 前端文件上传实战:从基础校验到分块上传

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online