yonaskolb/XcodeGen
一个用 Swift 编写的命令行工具,根据 YAML 或 JSON 项目配置和文件夹结构生成 Xcode 工程。
- Star
- 8,930
- Fork
- 918
- 未关闭 Issue
- 404
- 最近提交
- 25天前
这是什么?
XcodeGen 根据一份可读性强的项目配置文件(YAML 或 JSON)生成 Xcode 工程,配置中可定义 target、build configuration、scheme、自定义构建设置和依赖。工具会自动解析源码目录,并在 Xcode 中保持与磁盘文件夹结构一致,在磁盘上增删或移动文件后无需再手动修改 Xcode 工程。
由于 .xcodeproj 可以随时重新生成,团队可以把它从 git 中移除,从而避免工程文件常见的合并冲突。配置可以拆分到多个文件中,构建设置组则能让多个 target 复用同一套配置。工具支持在命令行中运行,也可以在 CI 上生成工程。
依赖方面,工具支持 Swift Package Manager 包、Carthage 框架、系统 SDK 以及多平台框架。它还能输出解析后的完整配置,并通过缓存选项在配置未变化时跳过重新生成。
核心功能
- 01根据 YAML 或 JSON 配置生成 Xcode 工程,分组与文件夹结构保持同步。
- 02可将 .xcodeproj 从 git 中移除,避免工程文件的合并冲突。
- 03通过构建设置组在多个 target 之间共享配置。
- 04为不同环境(如测试、生产)自动生成 scheme。
- 05配置可拆分到多个文件中便于共享和覆盖。
- 06支持 Swift Package、Carthage 框架和系统 SDK 依赖。
适用场景
- 将 .xcodeproj 移出版本控制,避免 iOS 或 macOS 团队中的工程文件冲突。
- 在 CI 机器上基于同一份配置生成 Xcode 工程。
- 维护包含大量 target 和共享构建设置的大型项目。
- 基于模板配置快速创建结构统一的新项目。
快速上手
- 1
确保已安装最新稳定版 Xcode
- 2
使用 Homebrew 安装 XcodeGen
brew install xcodegen - 3
根据当前目录中的项目描述文件生成 Xcode 项目
xcodegen generate
使用前须知
- 需要 Xcode,因此仅适用于在 macOS 上进行的 Apple 平台开发。
收录于专题
标签
常见问题
- XcodeGen 是什么?
- 一个用 Swift 编写的命令行工具,根据 YAML 或 JSON 项目配置和文件夹结构生成 Xcode 工程。 XcodeGen 根据一份可读性强的项目配置文件(YAML 或 JSON)生成 Xcode 工程,配置中可定义 target、build configuration、scheme、自定义构建设置和依赖。工具会自动解析源码目录,并在 Xcode 中保持与磁盘文件夹结构一致,在磁盘上增删或移动文件后无需再手动修改 Xcode 工程。
- XcodeGen 可以免费使用吗?用的什么许可证?
- XcodeGen 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- XcodeGen 还在维护吗?
- 活跃维护中。XcodeGen 最近一次提交是在 2026年10月13日。
- XcodeGen 适合用来做什么?
- 将 .xcodeproj 移出版本控制,避免 iOS 或 macOS 团队中的工程文件冲突。 在 CI 机器上基于同一份配置生成 Xcode 工程。 维护包含大量 target 和共享构建设置的大型项目。 基于模板配置快速创建结构统一的新项目。
- XcodeGen 怎么安装和运行?
- 确保已安装最新稳定版 Xcode 使用 Homebrew 安装 XcodeGen: brew install xcodegen 根据当前目录中的项目描述文件生成 Xcode 项目: xcodegen generate
- 在哪里获取 XcodeGen?
- 源代码和安装说明在 GitHub 上:https://github.com/yonaskolb/XcodeGen
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款 macOS 工具,关闭 iOS、tvOS、watchOS、visionOS 模拟器中用不到的后台服务,让一台 Mac 能同时运行更多模拟器。
3508+147 本周155GoMIT维护活跃更新于 3天前
一款 macOS 应用,图形化控制 iOS、tvOS、watchOS 模拟器,底层封装 Apple 的 simctl 命令。
6122+3 本周322SwiftMIT更新于 18天前
为 Xcode 提供 GitHub Copilot 支持的 AI 编程助手,涵盖代码补全、对话与 Agent 模式。
6366+5 本周2086SwiftMIT更新于 5天前