macOS

macOS 多开任意应用:以微信为例

2026-05-30 3 min read 948 chars

macOS 上很多应用默认只能开一个实例,双击图标只会激活已有窗口。原因是应用按 Bundle IDCFBundleIdentifier,应用唯一标识)做进程互斥:检测到相同 ID 的进程已存在,就不再新开。

绕过的思路:复制一份应用 → 给副本换一个不同的 Bundle ID → 系统将其视为另一个应用,与原版互不干扰。由于改动了 Info.plist,原签名会失效(提示"应用已损坏"),所以最后需重新签名。整个过程不修改原版、不注入插件。

⌘N、open -n、复制重签名的区别

操作 打开的是 进程 数据 / 账号
⌘N 新窗口 同一进程 视应用而定
open -n 新实例 独立进程 视应用而定
复制 + 重签名 新应用 独立进程 完全独立
  • ⌘N:应用内快捷键,行为完全由应用定义,且始终在同一进程内。多数应用只是新建窗口、共用账号;但内置多账号的应用(如 QQ)可借此直接登录第二个账号,无需后续步骤。微信等不支持的应用,则需用方法二。
  • open -n:终端命令,强制启动新进程,但绕不过应用自身的进程互斥(微信等会立即退出或切回原窗口)。
  • 复制 + 重签名:从应用身份层面解决,可登录第二个账号。

方法一:open -n

原生支持多实例的应用,一行即可:

open -n /Applications/Safari.app

能开出独立窗口即成功。微信 4.0.5+、QQ、Telegram 等做了互斥的应用对此无效,用方法二。

方法二:复制 + 改 Bundle ID + 重新签名

适用于按 Bundle ID 互斥的应用。下面以微信为例,套用到其他应用时替换路径与 ID 即可(路径含空格或中文时用引号括起)。

1. 查看原始 Bundle ID

/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "/Applications/WeChat.app/Contents/Info.plist"

微信结果一般为 com.tencent.xinWeChat,副本在其后加后缀即可。

2. 复制副本

sudo cp -R /Applications/WeChat.app "/Applications/微信双开.app"

回车后输入开机密码(不显示字符)。不想用 sudo 可改放到 ~/Applications

3. 改 Bundle ID

sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.tencent.xinWeChat.dual" "/Applications/微信双开.app/Contents/Info.plist"

无输出即成功。

4. 重新签名(ad-hoc 签名,- 表示无需证书)

sudo codesign --force --deep --sign - "/Applications/微信双开.app"

提示 replacing existing signature 即成功。若找不到 codesign,先装命令行工具:xcode-select --install

5. 启动并固定

双击副本,或 open "/Applications/微信双开.app"。在 Dock 右键图标 →「选项」→「在程序坞中保留」。

微信双开完整命令:

sudo cp -R /Applications/WeChat.app "/Applications/微信双开.app"
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.tencent.xinWeChat.dual" "/Applications/微信双开.app/Contents/Info.plist"
sudo codesign --force --deep --sign - "/Applications/微信双开.app"

完成后先开原版登录账号 A,再开副本登录账号 B。

常见问题

提示"应用已损坏":清除扩展属性后重签。

sudo xattr -cr "/Applications/微信双开.app"
sudo codesign --force --deep --sign - "/Applications/微信双开.app"

副本无法联网 / 不同步:检查防火墙是否拦截;关闭微信「自动登录」(设置 → 账号与储存);必要时 sudo killall -9 WeChat 后重开。

更新后副本失效:官方更新只覆盖原版,副本停留在旧版本。重跑步骤 2–4 覆盖即可。

不适用的情况:原生支持多开的用 open -n 即可;靠锁文件、单一端口或服务端登录态互斥的,改 ID 无效;启用强校验或依赖推送、钥匙串共享、App Groups 等权限的应用,重签名可能使相关功能失效;App Store 沙盒应用因收据校验可能打不开。

Comments.