macOS 微信多开与更新重建脚本实战
准备工作
确保系统为 macOS,并已正确安装官方微信(默认路径:/Applications/WeChat.app)。终端操作需具备 sudo 权限。
一键脚本方案
推荐直接使用脚本管理,避免重复劳动。我们需要创建一个 Shell 脚本来封装复制、重命名和签名的逻辑。相比手动修改 Bundle ID 和签名,脚本能大幅降低出错概率。
创建脚本文件
在终端进入用户主目录并新建文件:
cd ~
touch wechat-2.sh
编辑脚本内容
你可以使用 VS Code、系统文本编辑器或终端内置的 nano 打开文件。将下方格式化后的脚本粘贴进去保存。
提示:如果习惯图形界面,推荐使用 VS Code;若仅用终端,
nano足够便捷。
#!/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
() {
[ ! -d ];
-e
1
-e
}
() {
dest=
[ -d ];
[ -eq 1 ];
-rf
-p yn
[[ =~ ^[Yy]$ ]] && -rf
}
() {
app_name=
ditto
}
() {
app_name=
info_plist=
new_id=
/usr/libexec/PlistBuddy -c
/usr/libexec/PlistBuddy -c ||
}
() {
app_name=
dest=
-rf ||
xattr -dr com.apple.quarantine ||
codesign --force --deep --sign - --timestamp=none
}
() {
app_name ;
open -n
1
}
() {
pkill -f ||
}
() {
| grep ||
}
() {
setup)
check_wechat
remove_app
copy_wechat
modify_bundle_id
resign_app
;;
start)
start_apps
;;
auto)
check_wechat
remove_app
copy_wechat
modify_bundle_id
resign_app
start_apps
;;
multi)
count=
check_wechat
i $( 1 );
app_name=
remove_app
copy_wechat
modify_bundle_id
resign_app
start_apps $( i $( 1 ); ; )
;;
rebuild)
check_wechat
-e
apps=$(list_existing_apps)
app_name ;
-e
remove_app
copy_wechat
modify_bundle_id
resign_app
-e
;;
-k|)
kill_wechat
;;
-h|--|)
;;
*)
-e
1
;;
}
arg ;
[[ == ]] && FORCE=1
main


