macOS 原生 Minecraft 启动器,基于 SwiftUI 构建,参考 PCL 交互设计。 支持 版本管理、Mod/资源包/光影包管理、Modrinth/CurseForge 搜索下载、Microsoft 账号登录、多实例管理。
当前稳定版本:0.1.2
- macOS 原生体验,基于 SwiftUI,支持 macOS 14.0+
- 多实例管理,支持创建、复制、重命名、删除实例
- 版本管理,支持 Vanilla、Fabric、Quilt、Forge、NeoForge
- Mod 管理,本地启用/禁用/删除,支持 .jar/.disabled 切换
- 资源包管理,支持 .zip 资源包的启用/禁用/删除
- 光影包管理,支持光影包的启用/禁用/删除
- Modrinth 搜索,支持 Mod、Modpack、资源包、光影包、数据包搜索下载
- CurseForge 搜索,支持 Mod 搜索(需配置 API Key)
- Microsoft 账号登录,支持 OAuth 设备码流程
- 离线账号,支持自定义用户名
- Java 管理,自动扫描系统 Java,支持一键安装便携版 JDK
- 下载管理,并发下载、暂停/继续/取消、实时速度显示
- 日志查看器,实时查看游戏启动日志
- 崩溃分析,自动检测 Java 版本不匹配、崩溃日志分析
- 皮肤管理,支持皮肤导入、预览、切换
- 服务器列表,多人游戏服务器管理
- 自定义背景,支持自定义启动器背景图片
- 多语言,支持中文界面
- 自动更新,从 GitHub Releases 按当前 Mac 架构选择 ZIP,验证后自动替换并重启
| 项目 | 要求 |
|---|---|
| 系统 | macOS 14.0 (Sonoma) 或更高 |
| 架构 | Apple Silicon (arm64) 或 Intel (x86_64) |
| Xcode | 16.0 或更高(构建需要) |
| Java | 自动检测,或通过设置页一键安装 |
- 前往 Releases 下载与当前 Mac 架构匹配的
.dmg:Apple Silicon 选择arm64,Intel 选择x86_64 - 双击打开,拖入 Applications 文件夹
- 首次打开可能需要在「系统设置 → 隐私与安全性」中允许
Tips: 如果提示"已损坏,无法打开",执行以下命令移除隔离属性:
xattr -cr /Applications/MMCL.app
MMCL 启动时会从 GitHub Releases 检查最新正式版。每个 Release 会为 Apple Silicon 和 Intel 分别提供 .zip 与 .dmg:
MMCL-v版本-arm64.zip/.dmg用于 Apple Silicon;MMCL-v版本-x86_64.zip/.dmg用于 Intel。.zip用于应用内自动更新。启动器会按当前进程架构选择资产,并校验应用包、版本号、可执行文件和架构,等待当前进程退出后替换并自动重启。.dmg用于手动安装或自动更新失败时的兜底方案。
如果应用安装在不可写目录,自动更新会失败,请将 MMCL 放在用户有写权限的目录(例如用户自己的 ~/Applications 文件夹);系统级 /Applications 是否可写取决于当前账户权限。
# 克隆仓库
git clone https://github.com/Lhy723/MMCL.git
cd MMCL
# 构建
xcodebuild build -project MMCL.xcodeproj -scheme MMCL -destination 'platform=macOS'
# 或使用脚本构建并运行
./script/build_and_run.sh- 打开启动器,点击侧边栏「下载中心」
- 在「原版游戏」标签页选择 Minecraft 版本
- 可选:选择 Mod 加载器(Forge / Fabric / Quilt / NeoForge)
- 点击「开始下载」,等待下载完成
如果启动器未检测到 Java:
- 打开「设置 → 游戏 Java」
- 点击「安装 Java」
- 选择版本(推荐 Java 21),点击安装
- 便携版 JDK 会自动下载到本地目录
- 点击侧边栏「下载中心」→「Mod」标签
- 搜索想要的 Mod
- 点击「安装」,选择版本后自动下载到当前实例
CurseForge 需要单独的 API Key:
- 前往 CurseForge Console 注册并获取 API Key
- 打开「设置 → 其他」,输入 API Key
- 搜索时选择 CurseForge 来源即可
完整变更记录见 CHANGELOG.md。0.1.2 相较于 0.1.1 新增分层 JVM 参数与 macOS 架构优化,并将 Release 和应用内更新拆分为 arm64/x86_64 架构资产。
MMCL/
├── Models/ # 数据模型
├── Services/ # 服务层(下载、版本管理、Java、Modrinth API 等)
├── Stores/ # 状态管理(LauncherStore)
├── Views/ # UI 视图
│ ├── download/ # 下载中心相关视图
│ └── ...
├── Assets.xcassets # 图标资源
└── MMCLApp.swift # 应用入口
采用 Models → Services → Store → Views 分层架构:
- Models:所有数据类型定义(
LauncherInstance、DownloadJob、JavaRuntime等) - Services:协议化服务层,支持依赖注入和 Mock 测试;
AppUpdateService负责 GitHub Release 架构筛选、ZIP 校验、替换和重启 - Store:单一
ObservableObject,管理所有应用状态 - Views:SwiftUI 视图,
NavigationSplitView布局
# 运行所有测试
xcodebuild test -project MMCL.xcodeproj -scheme MMCL -destination 'platform=macOS'
# 运行单个测试类
xcodebuild test -project MMCL.xcodeproj -scheme MMCL -destination 'platform=macOS' \
-only-testing:MMCLTests/LauncherStoreTests支持多种下载源,可在设置中切换:
| 来源 | 说明 |
|---|---|
| 官方 | Mojang 官方服务器 |
| BMCLAPI | 国内镜像加速 |
| 自定义 | 自定义镜像地址 |
- PCL (Plain Craft Launcher) — 交互设计参考
- Modrinth — Mod 搜索 API
- CurseForge — Mod 搜索 API
- Adoptium — 便携版 JDK 下载