macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本) - 实践

macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本) - 实践

macOS 双开/多开微信完整教程(支持 4.X 及以上版本)一、准备工作确保系统为 macOS,并已正确安装官方微信(路径:/Applications/WeChat.app)。确认系统中具备以下工具:

dittocodesignxattr/usr/libexec/PlistBuddy打开终端(Terminal),确保拥有 sudo 权限。文章目录macOS 双开/多开微信完整教程(支持 4.X 及以上版本)一、准备工作二、一键双开脚本(推荐方法)终端操作|创建脚本文件1. 新建文件2. 打开文件进行编辑方法1:用文本编辑器(推荐)方法2:用 VS Code(如果已安装)方法3:用终端内置编辑器 nano3. 赋予执行权限4. 运行脚本三、完整脚本(支持双开、多开、更新后重建)四、手动操作流程(可选)五、多开操作(创建多个副本)六、更新后自动重建副本为什么需要重建?使用方法效果七、总结二、一键双开脚本(推荐方法)⚠️ 免责声明 本教程及脚本仅供学习和研究使用,方法来源于网络。请自行评估风险与适用性。若因操作导致系统异常、微信账号异常或其他损失,均由使用者本人承担,与本文作者无关。

终端操作|创建脚本文件我们需要先新建一个脚本文件,把前面给出的 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 auto --force 系统会提示输入管理员密码,请输入你的 Mac 密码(输入时不会显示)。

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

sudo ./wechat-2.sh multi 3 --force 会自动生成:小绿书1、小绿书2、小绿书3。

更新后重建副本

sudo ./wechat-2.sh rebuild --force 关闭所有微信进程

sudo ./wechat-2.sh kill 总结一下操作步骤:

touch wechat-2.sh 新建文件nano wechat-2.sh 或 open -e wechat-2.sh 编辑脚本chmod +x wechat-2.sh 添加运行权限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 次,可以手动操作:

复制应用

sudo cp -R /Applications/WeChat.app /Applications/小绿书.app 修改应用唯一标识符

sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier net.maclub.wechat" /Applications/小绿书.app/Contents/Info.plist 重新签名应用

sudo codesign --force --deep --sign - /Applications/小绿书.app 验证结果 打开 Finder > 应用程序,若能看到 小绿书.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 一键重建所有副本,免去升级后的手动操作。

相关任务

365体育网在线手机版 世界斯诺克世界杯赛落户中国无锡 丁俊晖率队出战
盒子365app下载 为什么我们不再 Root 和刷机了?
盒子365app下载 江苏第一大城,给全国点“盐”色看看