XcodeGen
XcodeGen 是一个用 Swift 编写的命令行工具,它可以使用你的文件夹结构和项目规范生成 Xcode 项目。
项目规范是一个 YAML 或 JSON 文件,用于定义你的目标、配置、方案、自定义构建设置和许多其他选项。所有的源目录都会被自动解析并适当引用,同时保留你的文件夹结构。许多地方都使用了合理的默认值,所以你只需要自定义必要的部分。使用更高级的功能也可以定义非常复杂的项目。
- ✅ 按需生成项目并从 git 中移除
.xcodeproj
,这意味着不再有合并冲突! - ✅ Xcode 中的组和文件始终与磁盘上的目录保持同步
- ✅ 易于配置的项目,具有人类可读性并且 git 友好
- ✅ 轻松复制和粘贴文件和目录,无需在 Xcode 中编辑任何内容
- ✅ 通过构建设置组在多个目标间共享构建设置
- ✅ 自动为不同环境(如测试和生产)生成方案
- ✅ 轻松创建新项目,无需在 Xcode 中费力设置复杂的配置
- ✅ 可以在任何地方生成,包括在 CI 上
- ✅ 将规范分布在多个文件中,便于共享和覆盖
- ✅ 轻松创建多平台框架
- ✅ 无需任何额外工作即可集成 Carthage 框架
以下是一个示例项目规范:
name: MyProject
include:
- base_spec.yml
options:
bundleIdPrefix: com.myapp
packages:
Yams:
url: https://github.com/jpsim/Yams
from: 2.0.0
targets:
MyApp:
type: application
platform: iOS
deploymentTarget: "10.0"
sources: [MyApp]
settings:
configs:
debug:
CUSTOM_BUILD_SETTING: my_debug_value
release:
CUSTOM_BUILD_SETTING: my_release_value
dependencies:
- target: MyFramework
- carthage: Alamofire
- framework: Vendor/MyFramework.framework
- sdk: Contacts.framework
- sdk: libc++.tbd
- package: Yams
MyFramework:
type: framework
platform: iOS
sources: [MyFramework]
将创建一个包含两个相互连接的目标的项目,并包含所有必要的配置和构建设置。有关可以指定的所有选项,请参阅项目规范文档,更多常规文档请参阅使用说明。
安装
首先确保安装了最新的稳定版(非测试版)Xcode。
Mint
mint install yonaskolb/xcodegen
Make
git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
make install
Homebrew
brew install xcodegen
Swift Package Manager
作为 CLI 使用
git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
swift run xcodegen
作为依赖使用
在你的 Package.swift 文件的依赖项中添加以下内容:
.package(url: "https://github.com/yonaskolb/XcodeGen.git", from: "2.42.0"),
然后在需要的地方导入:import XcodeGenKit
使用
只需运行:
xcodegen generate
这将在当前目录中查找名为 project.yml
的项目规范,并生成一个使用规范中定义的名称的 Xcode 项目。
选项:
- --spec:可选的
.yml
或.json
项目规范路径。默认为project.yml
。(也可以通过逗号分隔链接到多个规范文件。注意,所有其他标志将保持相同。) - --project:可选的项目生成目录路径。默认为规范所在的目录。
- --quiet:抑制信息和成功消息。
- --use-cache:用于防止不必要的项目生成。如果设置了此选项,则在生成项目时会写入缓存文件。如果稍后运行
xcodegen
,但规范和它包含的所有文件都相同,则不会生成项目。 - --cache-path:用于缓存文件的自定义路径。默认为
~/.xcodegen/cache/{PROJECT_SPEC_PATH_HASH}
还有其他命令,例如 xcodegen dump
,它允许以多种不同格式输出解析后的规范,或将其写入文件。使用 xcodegen help
查看更详细的使用信息。
编辑
git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
swift package generate-xcodeproj
这使用 Swift Package Manager 创建一个 xcodeproj
文件,你可以在 Xcode 中打开、编辑和运行,这使得编辑任何代码变得更容易。
如果你想在 Xcode 中运行时传递任何必需的参数,可以编辑方案以包含启动参数。
文档
替代方案
如果 XcodeGen 不能满足你的需求,可以尝试这些优秀的替代方案:
致谢
本工具由以下项目提供支持:
本工具的灵感来自:
贡献
欢迎提交拉取请求和问题。请为 bug、功能或文档开启任何问题和拉取请求。
许可证
XcodeGen 在 MIT 许可下授权。更多信息请查看 LICENSE。