Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧬 AppCloner

macOS 原生轻量级应用多开 / 双开分身管理器
Create, manage, update, and run independent app clones natively on macOS.

macOS Swift SwiftUI License: MIT Vibe Coding


📌 项目简介

在 macOS 上想要同时登录多个微信、Telegram 账号,或者针对同一应用运行独立的测试环境?

AppCloner 是一款使用 SwiftUI 构建的 macOS 原生应用。无需依赖繁重的虚拟机或外部容器,它通过重置 Bundle Identifier 并进行 Ad-hoc 签名,为指定应用生成独立的“双开分身”,并提供开箱即用的分身生命周期管理。


✨ 核心特性

  • 🔎 智能应用扫描:自动检索 /Applications~/Applications 下已安装的 macOS 应用程序。
  • 一键创建分身:自动化执行 App Bundle 复制修改 Info.plist Bundle IDAd-hoc 自动重签名
  • 🔢 智能序列命名:自动生成规则命名(如 App_2ndApp_3rdApp_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. 注册完成]
独立分身生成完毕 ──► 可与原应用同时独立运行

🚀 快速开始

方式一:Xcode 构建与运行

  1. 安装项目生成工具 XcodeGen
    brew install xcodegen
  2. 生成项目并打开:
    xcodegen generate
    open AppCloner.xcodeproj
  3. 在 Xcode 中选择 AppCloner Scheme,按 ⌘R 运行。

方式二:一键脚本构建

bash build.sh
open build/AppCloner.app

系统要求:macOS 14.0 (Sonoma) 或更高版本,已安装 Xcode Command Line Tools (xcode-select --install)。


💡 使用指南

  1. 选择应用:点击侧边栏 + 按钮,在应用列表中选择需要分身的目标软件。
  2. 生成分身:点击 创建分身,可选择默认序列命名或输入自定义分身名称。
  3. 独立启动:在详情面板中点击 启动,或直接在系统的 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/     # 侧边栏与应用详情视图

☕ 关于本项目 (About)

本项目为 Vibe Coding 产物,旨在以最简单原生、无冗余依赖的方式解决 Mac 下多账号同时在线的痛点。

  • 定位:开箱即用、原生纯净、无任何常驻后台守护进程。
  • 维护说明:个人业余项目,后期大概率按需维护,不承诺长期功能迭代。
  • 二次开发:欢迎按需 Fork 和魔改!

📄 License

本项目基于 MIT License 开源。

About

一款使用 SwiftUI 构建的轻量级 macOS 原生应用,用于快速创建、管理、更新和独立运行软件双开分身。

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages