macOS 原生轻量级应用多开 / 双开分身管理器
Create, manage, update, and run independent app clones natively on macOS.
在 macOS 上想要同时登录多个微信、Telegram 账号,或者针对同一应用运行独立的测试环境?
AppCloner 是一款使用 SwiftUI 构建的 macOS 原生应用。无需依赖繁重的虚拟机或外部容器,它通过重置 Bundle Identifier 并进行 Ad-hoc 签名,为指定应用生成独立的“双开分身”,并提供开箱即用的分身生命周期管理。
- 🔎 智能应用扫描:自动检索
/Applications与~/Applications下已安装的 macOS 应用程序。 - ⚡ 一键创建分身:自动化执行
App Bundle 复制➔修改 Info.plist Bundle ID➔Ad-hoc 自动重签名。 - 🔢 智能序列命名:自动生成规则命名(如
App_2nd、App_3rd、App_4th...),亦支持用户自定义名称。 - 🎛️ 生命周期管理:提供分身运行状态实时监控,支持一键启动、原版同步更新及彻底删除。
- 🛡️ 独立数据隔离:分身拥有独立的系统标识符,与原应用互不干扰、并行运行。
原始应用 (/Applications/TargetApp.app)
│
▼ [1. 复制 Bundle]
目标目录 (~/Applications/TargetApp_2nd.app)
│
▼ [2. 修改配置]
修改 Info.plist 中的 CFBundleIdentifier (例如 com.example.app.2nd)
│
▼ [3. 代码签名]
执行 codesign --force --deep --sign - (Ad-hoc 本地重签名)
│
▼ [4. 注册完成]
独立分身生成完毕 ──► 可与原应用同时独立运行
- 安装项目生成工具 XcodeGen:
brew install xcodegen
- 生成项目并打开:
xcodegen generate open AppCloner.xcodeproj
- 在 Xcode 中选择
AppClonerScheme,按⌘R运行。
bash build.sh
open build/AppCloner.app系统要求:macOS 14.0 (Sonoma) 或更高版本,已安装 Xcode Command Line Tools (
xcode-select --install)。
- 选择应用:点击侧边栏
+按钮,在应用列表中选择需要分身的目标软件。 - 生成分身:点击 创建分身,可选择默认序列命名或输入自定义分身名称。
- 独立启动:在详情面板中点击 启动,或直接在系统的 Launchpad / Finder 中像普通 App 一样打开。
- 应用内置单例限制:部分应用在软件架构层面内置了单例互斥锁、固定本地端口/IPC 监听或进程检测机制(例如最新版 QQ 等),克隆后可能会直接退出或唤起已有实例。这属于目标应用自身的设计限制,并非本程序缺陷。(提示:最新版 QQ 官方本身已支持使用快捷键
⌘N直接新建窗口登录多账号)。 - App Store 应用机制:受限于 Mac App Store 的沙盒与签名校验机制,从商店下载的应用克隆后可能无法正常运行,建议使用官网 DMG 安装包版本进行多开。
- Gatekeeper 拦截提示:首次运行分身时,macOS 系统可能会提示未签名或安全性警告,前往「系统设置 → 隐私与安全性」点击「仍要打开」即可。
- 架构支持:原生支持 Apple Silicon 与 Intel 架构(Universal 2 通用二进制)。
AppCloner/
├── Models/ # 数据模型与分身持久化
├── Services/ # 核心服务 (克隆引擎、签名处理、应用发现)
├── ViewModels/ # @Observable 视图状态管理
└── Views/ # SwiftUI 页面与可复用组件
├── Components/ # 通用 UI 组件
└── Sidebar/ # 侧边栏与应用详情视图
本项目为 Vibe Coding 产物,旨在以最简单原生、无冗余依赖的方式解决 Mac 下多账号同时在线的痛点。
- 定位:开箱即用、原生纯净、无任何常驻后台守护进程。
- 维护说明:个人业余项目,后期大概率按需维护,不承诺长期功能迭代。
- 二次开发:欢迎按需 Fork 和魔改!
本项目基于 MIT License 开源。