从源码到应用:AeroSpace开发环境搭建与构建全流程
作为一款类i3的macOS窗口管理器,AeroSpace的开发环境搭建涉及多工具链协同。本文将系统梳理从源码获取到应用部署的完整流程,帮助开发者快速上手参与项目开发。
开发环境准备
核心依赖安装
AeroSpace基于Swift生态构建,需安装以下开发工具:
- Xcode:通过App Store安装,提供macOS开发基础框架
- Swift版本管理:使用swiftly工具链管理器
brew install swiftly - 辅助工具链(按需安装):
- Rust环境:用于构建shell补全功能
- Ruby 3.0+:通过rbenv管理,用于生成文档
- xcbeautify:优化Xcode构建日志可读性
brew install xcbeautify
源码获取
通过GitCode仓库克隆源码:
git clone https://gitcode.com/GitHub_Trending/ae/AeroSpace
cd AeroSpace
项目采用模块化结构设计,核心代码组织如下:
- Sources/AppBundle:主应用逻辑模块
- Sources/Cli:命令行客户端实现
- Sources/Common:共享工具函数库
- dev-docs:开发文档目录,包含架构说明和开发指南
证书配置与安全设置
代码签名证书创建
若需构建可分发的应用包,需创建自签名证书:
- 打开「钥匙串访问」应用
- 通过菜单「证书助理」→「创建证书」
- 配置参数:
- 名称:
aerospace-codesign-certificate - 身份类型:自签名根证书
- 证书类型:代码签名
- 名称:
开发调试阶段可跳过此步骤,直接通过终端运行调试版本。
构建流程详解
项目生成与配置
项目使用XcodeGen管理工程文件,通过generate.sh脚本自动生成配置:
./generate.sh --all
该脚本执行以下关键操作:
- 生成Xcode项目文件
- 创建版本信息文件
- 构建命令行帮助文档
- 生成shell解析器代码
生成的关键文件包括:
- AeroSpace.xcodeproj:Xcode项目文件
- Sources/Common/versionGenerated.swift:版本信息
- Sources/Cli/subcommandDescriptionsGenerated.swift:命令描述
构建脚本使用
项目提供多套构建脚本满足不同需求:
调试构建
# 构建调试版本
./build-debug.sh
# 运行调试版本
./run-debug.sh
# 执行CLI命令
./run-cli.sh focus
发布构建
# 构建发布版本
./build-release.sh
# 从源码安装
./install-from-sources.sh
发布构建使用Xcode构建系统,生成路径为
.release目录。
自动化构建流程
项目Makefile整合了常用构建任务:
- 代码格式化:
make format - 测试执行:
make test - 清理构建产物:
make clean
开发工具与IDE配置
Xcode开发环境
推荐通过Package.swift打开项目而非直接使用xcodeproj文件,以获得更轻量的开发体验:
- 在Xcode中打开Package.swift
- 配置运行方案:
- 编辑Scheme → Options → Console
- 选择「Terminal」作为控制台输出目标
此配置可避免重复请求辅助功能权限,提升调试效率。
其他IDE支持
- Neovim/VS Code:通过sourcekit-lsp提供代码补全
- AppCode:历史上使用,现已停止维护
测试与验证
单元测试执行
./run-tests.sh
测试覆盖核心功能模块,包括:
- 窗口管理逻辑
- 命令解析器
- 配置文件处理
调试工具使用
- 辅助功能检查器:系统内置工具,用于分析窗口属性
- DeskPad:模拟多显示器环境测试布局功能
- 日志查看:通过
~/Library/Logs/AeroSpace查看运行日志
常见问题解决
构建失败处理
当遇到构建问题时,可尝试清理项目缓存:
./script/clean-project.sh
证书权限问题
若出现代码签名错误:
- 检查钥匙串中证书是否设置为「始终信任」
- 确保Xcode构建设置中的签名身份正确
调试版本运行异常
开发过程中若出现异常行为,可使用调试脚本查看详细日志:
./run-debug.sh --verbose
项目扩展与贡献
新增命令开发流程
遵循以下步骤添加新命令:
- 在
docs目录创建对应adoc文档 - 更新命令语法定义:grammar/commands-bnf-grammar.txt
- 实现命令处理逻辑:Sources/AppBundle/command
- 添加单元测试:Sources/AppBundleTests/command
文档生成
构建完整文档站点:
./build-docs.sh
生成的文档位于.site目录,可通过浏览器直接打开查看。
总结
AeroSpace提供了完善的开发工具链和自动化构建流程,通过本文档介绍的步骤,开发者可快速搭建起从代码编写到应用部署的完整工作流。项目模块化架构设计确保了良好的可扩展性,便于功能扩展和维护。
开发过程中建议参考以下资源:
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



