Apple Native Development(CLI + Zed)是一套用于构建 iOS/macOS 应用的命令行工作流,目标是在不使用 Xcode 图形界面的前提下完成项目搭建、构建、签名与部署。它把 XcodeGen、justfile 和 Zed Editor 组合在一起使用。
用途 该方案面向希望以纯 CLI 方式开发 Apple 平台应用的场景,用 project.yml 声明式地定义 Xcode 工程,用 just 命令统一封装构建与部署步骤,并用 Zed Editor 配合 LSP 获得代码补全,从而绕开 Xcode UI。
主要能力
- 项目生成:通过 XcodeGen 从 project.yml 生成 Xcode 项目。
- 凭据管理:使用 xcconfig 文件把 Team ID 等凭据排除在 git 之外,提供已提交的基础配置、被 gitignore 的本地配置以及可提交的模板文件。
- 编辑器集成:生成 buildServer.json 为 Zed 提供代码补全。
- 构建与部署:支持模拟器构建、构建并安装启动,以及 iOS 17+ 真机部署。
- CI/CD:提供 GitHub Actions 脚手架文件(默认禁用状态)。
使用方式 安装工具: brew install xcodegen just xcode-build-server
生成工程: cd Apps/MyApp && xcodegen generate
凭据快速设置(可从钥匙串自动检测 Team ID): just ios::setup-credentials
配置 Zed LSP: just ios::setup-lsp 或手动执行: xcode-build-server config -project Apps/MyApp/MyApp.xcodeproj -scheme MyApp
模拟器构建与运行: just ios::build # 为模拟器构建 just ios::run # 构建 + 安装 + 启动
真机部署(iOS 17+): just ios::device-deploy # 构建 + 安装 + 在 iPhone 上启动
关键文件包括:project.yml(XcodeGen 工程定义)、Configs/Project.xcconfig(已提交的基础构建设置)、Configs/Project.local.xcconfig(被 gitignore 的凭据)、buildServer.json(被 gitignore 的 LSP 配置)、justfile 或 ios.just(构建命令)。
建议的 gitignore 模式: .local.xcconfig !.local.xcconfig.example buildServer.json *.xcodeproj/
引导项目时可从 assets/templates/ 复制模板,包括 Project.xcconfig、Project.local.xcconfig.example、project.yml、ios.just 以及 ios-build.yml.disabled。
适用场景 适合偏好命令行与轻量编辑器的 iOS/macOS 开发者,尤其是希望用声明式配置管理工程、把凭据与工程文件排除在版本控制之外、并在 Zed 中获得代码补全的团队或个人。
限制与注意事项 资料中给出的排错提示包括:CLI 构建出现 “Unable to find module dependency” 时,可在 project.yml 中于开发期间关闭 hardened runtime: settings: base: ENABLE_HARDENED_RUNTIME: NO ENABLE_ENHANCED_SECURITY: NO
Zed 中没有代码补全时,构建后重新生成:just ios::setup-lsp。 真机安装失败时,确认设备已信任并连接:just ios::devices。 关于收费、价格、平台支持范围、实际效果等更多信息,资料中暂未提供。