macos/ 目录包含 EasyLLM 的原生 macOS 启动器。它不替换 Go 后端或 Vue 前端,而是在 App Bundle 中内置后端二进制和 web/dist,启动后通过 WKWebView 打开本地服务。
./scripts/build-macos-app.shRelease zip:
./scripts/build-macos-app.sh --package --version 2.0.0构建产物:
build/macos/EasyLLM.app
build/release/EasyLLM-2.0.0-macos-<arch>.zip
启动:
open build/macos/EasyLLM.app脚本会执行:
- 构建前端
web/dist。 - 编译 Go 后端为
EasyLLM.app/Contents/Resources/easyllm。 - 拷贝
web/dist到EasyLLM.app/Contents/Resources/web/dist。 - 使用
macos/MakeAppIcon.swift从web/src/assets/brand/easyllm-app-icon.png生成.icns。 - 编译
macos/EasyLLMApp.swift为 App 主程序。 - 如系统存在
codesign,执行 ad-hoc 签名。 - 传入
--package时,用ditto生成保留 App Bundle 元数据的 zip。
App 运行数据存放在:
~/Library/Application Support/EasyLLM/
普通浏览器方式启动的本地后端在未显式配置 DATA_DIR / DB_SQLITE_PATH 时,也会默认使用同一套数据目录,确保浏览器访问和 macOS App 访问看到相同账号数据。
常见文件:
data/easyllm.db
easyllm.log
secret.key
- App 启动时会自动寻找可用端口,默认从
8022开始。 - 后端仅监听
127.0.0.1。 - App 启动时会带上
mac_app=1标记,前端默认进入 Codex 管理页。 - WebView 支持系统文件选择面板,导入 JSON 或选择目录时会弹出 macOS 原生面板。
macos/EasyLLMApp.swift # App 启动器
macos/MakeAppIcon.swift # 图标生成
scripts/build-macos-app.sh # 打包脚本