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

Mac 微信 4.0 多开:Bundle ID 重签名实现

Mac 微信 4.0 及以上版本因加强单实例检测导致传统多开方式失效。介绍通过复制应用包并将 Bundle ID 修改为 com.tencent.xinWeChat2,结合重新签名与清除系统缓存,使系统识别为新应用以实现多开。内容涵盖手动操作步骤、自动化 Shell 脚本编写、权限设置及聊天记录备份迁移方法,解决无法验证开发者等问题。

漫步发布于 2026/2/8更新于 2026/10/20122 浏览
Mac 微信 4.0 多开:Bundle ID 重签名实现

Mac 微信 4.0 以上版本加强了单实例检测机制,只要在当前包签名下已经有程序在运行了,则允许再继续开启新的进程。因此以前使用 nohup 命令运行的方式已不可用。本文介绍如何通过 Bundle ID 重签名方案实现微信多开。

Bundle ID 重签名实现微信多开

Bundle ID 重签名方案实现原理

微信官方 Mac 版的 Bundle ID 为 com.tencent.xinWeChat,系统通过这个标识符判断是否已有实例在运行。Bundle ID 重签名方案的核心原理是复制微信应用并修改其 Bundle ID 为 com.tencent.xinWeChat2,从而创建系统认为完全不同的两个独立应用。

什么是 Bundle ID?

Bundle ID(应用程序标识符)是 macOS 系统用于唯一识别应用程序的字符串,类似于应用的"身份证号"。

如何查看 App 的 Bundle ID
  1. 应用程序搜索到你的应用,点击右键,进入访达。
  2. 应用程序右键,点击显示包内容。
  3. 点击 Contents 文件夹,进到包里面,打开 Info.plist。
  4. 搜索 Key:CFBundleIdentifier,底下对应的 string 值就是包的签名 Bundle ID。
技术原理解析

📋 Bundle ID 机制:macOS 使用 Bundle ID 作为应用程序的唯一标识符,存储在应用包内的 Info.plist 文件中。系统启动应用时会检查该 Bundle ID 是否已有运行实例,如果存在则拒绝启动第二个实例。通过修改 Bundle ID,系统会将修改后的应用视为全新应用,从而允许多实例运行。

详细实现流程

1、复制微信应用

在 Mac 终端,执行以下命令:

# 在终端中执行以下命令
cd /Applications
sudo cp -R WeChat.app WeChat2.app
2、修改 Bundle ID

进到复制的应用包内部,使用 PlistBuddy 工具修改 Bundle ID(PlistBuddy 说明:这是 macOS 系统自带的 plist 文件编辑工具,无需额外安装):

# 进入复制的应用包内部
cd /Applications/WeChat2.app/Contents
# 使用 PlistBuddy 工具修改 Bundle ID
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.tencent.xinWeChat2" Info.plist
3、重新签名应用

修改 Bundle ID 后必须重新签名,否则应用无法启动。--force 参数强制覆盖原有签名,--deep 参数递归签名所有内部组件,-s - 使用本地临时签名(adhoc 签名)。

# 强制重新签名,允许应用在修改后正常运行
sudo codesign --force --deep -s - --timestamp=none /Applications/WeChat2.app
4、修改应用显示名称

修改新的包显示名称,以便在应用程序可以搜索到:

# 修改应用在 Finder 中显示的名称 sudo /usr/libexec/PlistBuddy -c "Set :CFBundleName WeChat2" /Applications/WeChat2.app/Contents/Info.plist sudo /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName 微信 2" /Applications/WeChat2.app/Contents/Info.plist

执行完以上命令后,应用程序还搜索不到新的包,需要继续执行清除系统缓存。

5、清除系统缓存

清除 Launch Services 数据库缓存,让系统识别新应用。缓存清理说明:macOS 会缓存应用程序的元数据,不清除缓存可能导致系统仍将 WeChat2 识别为原微信应用。

# 清除 Launch Services 数据库缓存,让系统识别新应用
sudo /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
6、授予执行权限

执行以下命令确保应用具有可执行权限:

# 确保应用具有可执行权限
sudo chmod +x /Applications/WeChat2.app/Contents/MacOS/WeChat
7、首次启动与授权

进到应用程序,双击启动 Wechat2.app,首次启动会提示授权各项权限(摄像头、麦克风、文件访问等),全部允许即可。

提示:如果弹出"无法验证开发者"提示,按以下步骤处理:

  • 打开"系统偏好设置" → "安全性与隐私"
  • 在"通用"标签页底部点击"仍要打开"按钮
  • 再次双击 WeChat2.app,在弹窗中点击"打开"

全部权限授权完成后,可以看到底下新开了个 App。

8、验证独立性

同时登录两个微信,互相发送消息,看下消息数量是否能对上!点击顶部的消息群能自动跳转到对应的消息即是消息实现了独立。

一键脚本自动化方案实现

上面那些步骤,对于不动技术人员来说,可能操作还是太繁琐了,为简化上面的 8 个步骤,可以将它整合成一个 shell 脚本,只需一键执行这个脚本即可完成上面所有操作!

#!/bin/bash
# wechat_dual.sh - Mac 微信双开自动化脚本

echo "开始创建微信双开应用..."

# 步骤 1-2:复制应用并修改 Bundle ID
cd /Applications
sudo cp -R WeChat.app WeChat2.app
cd WeChat2.app/Contents
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.tencent.xinWeChat2" Info.plist

# 步骤 3:重新签名
sudo codesign --force --deep -s - --timestamp=none /Applications/WeChat2.app

# 步骤 4:修改显示名称
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleName WeChat2" /Applications/WeChat2.app/Contents/Info.plist
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName 微信 2" /Applications/WeChat2.app/Contents/Info.plist

# 步骤 5:清除缓存
sudo /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

# 步骤 6:授予权限
sudo chmod +x /Applications/WeChat2.app/Contents/MacOS/WeChat

echo "✅ 微信双开应用创建完成!请在应用程序文件夹中找到'微信 2'启动。"
一键脚本执行方法
  1. 把上面的脚本内容保存为 wechat_dual.sh
  2. 在终端执行:chmod +x wechat_dual.sh
  3. 运行脚本:sh wechat_dual.sh
  4. 输入管理员密码后等待自动完成

版本更新

使用以上方式实现微信多开后,微信官方每次更新后,WeChat2.app 不会自动更新,每次只会更新 Wechat.app,如果想把 Wechat2 也进行更新,可以把 /Applications/WeChat2.app 全部删除,再重新按上面方式执行下!

注意:如果直接删除/Applications/WeChat2.app 会把它的聊天记录也一起删除,如果想保存 WeChat2 的本地聊天记录,需要做下备份。

# 将 WeChat2 的数据迁移到新设备
tar -czf wechat2_backup.tar.gz ~/Library/Containers/com.tencent.xinWeChat2
# 在新设备解压到相同路径即可

目录

  1. Bundle ID 重签名实现微信多开
  2. Bundle ID 重签名方案实现原理
  3. 什么是 Bundle ID?
  4. 如何查看 App 的 Bundle ID
  5. 技术原理解析
  6. 详细实现流程
  7. 1、复制微信应用
  8. 在终端中执行以下命令
  9. 2、修改 Bundle ID
  10. 进入复制的应用包内部
  11. 使用 PlistBuddy 工具修改 Bundle ID
  12. 3、重新签名应用
  13. 强制重新签名,允许应用在修改后正常运行
  14. 4、修改应用显示名称
  15. 修改应用在 Finder 中显示的名称
  16. 5、清除系统缓存
  17. 清除 Launch Services 数据库缓存,让系统识别新应用
  18. 6、授予执行权限
  19. 确保应用具有可执行权限
  20. 7、首次启动与授权
  21. 8、验证独立性
  22. 一键脚本自动化方案实现
  23. wechat_dual.sh - Mac 微信双开自动化脚本
  24. 步骤 1-2:复制应用并修改 Bundle ID
  25. 步骤 3:重新签名
  26. 步骤 4:修改显示名称
  27. 步骤 5:清除缓存
  28. 步骤 6:授予权限
  29. 一键脚本执行方法
  30. 版本更新
  31. 将 WeChat2 的数据迁移到新设备
  32. 在新设备解压到相同路径即可

更多推荐文章

查看全部
  • Spring Boot 集成 Neo4j 图数据库实战指南
  • GitHub Copilot 账号切换与退出指南
  • 算法题解:组合总和、组合总和 II 及分割回文串
  • 开源低代码平台 Microi 吾码:加速业务与技术融合
  • Trae、Cursor、Copilot、Windsurf 四款 AI 编程工具对比
  • Linux 网络基础入门(上)
  • VSCode 中配置与使用 Copilot MCP 实战指南
  • Web 聊天室消息加解密方案详解
  • Qwen2.5-7B-Instruct 模型本地部署与 Modelfile 配置实践
  • Kubernetes 核心技术与实践文章精选
  • Gemini 图片无损去水印:基于数学算法的纯前端方案
  • OpenClaw 在 Windows 与 macOS 上的安装体验对比
  • MySQL 数据类型详解
  • Midjourney 进阶:色调详解(上)
  • MemClawz 三层记忆架构集成指南:为 OpenClaw 注入持久记忆
  • 苹果新款 Mac Studio 搭载 M5 Ultra 芯片性能提升 75%
  • DeepSpeed 大模型训练框架深度解析与应用
  • ComfyUI 与潜空间:AI 绘画技术原理解析
  • 利用文心一言设计智能体工作流调用的稳定提示词
  • DTS-BLY-5S 分布式光纤测温主机:20km 覆盖与 FPGA 架构

相关免费在线工具

  • 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