学如逆水行舟,不进则退。原文|地址
XcodeGen 是一个用 Swift 编写的命令行工具,它使用文件夹结构和项目规范生成您的 Xcode 项目,目前这款开源应用在 Github 已经有 5k 的 Star 了,github.com/yonaskolb/X…
github.com/uzi-yyds-co…
XcodeGen 有一个 YAML 或 JSON 文件,用于定义您的目标、配置、方案、自定义构建设置和许多其他选项。您的所有源目录都会自动解析并适当引用,同时保留您的文件夹结构。很多地方都使用了合理的默认值,所以你只需要定制需要的东西。也可以使用更高级的功能来定义非常复杂的项目。
优点
作为一款 Xcode 辅助工具,它有以下诸多的优点:
-
按需生成项目并从 git 中删除您的 .xcodeproj,这意味着不再有合并冲突!
-
Xcode 中的组和文件始终同步到您磁盘上的目录
-
易于配置的项目,具有可读性和 git 友好性
-
无需在 Xcode 中编辑任何内容,即可轻松复制和粘贴文件和目录
-
使用构建设置组在多个目标之间共享构建设置
-
为测试和生产等不同环境自动生成方案
-
根据需要轻松创建具有复杂设置的新项目,而无需使用 Xcode
-
从任何地方生成,包括 CI
-
在多个文件中分发您的规范,以便于共享和覆盖
-
轻松创建多平台框架
-
无需任何工作即可集成 Carthage 框架
-
导出依赖图以在 Graphviz 中查看
项目规范
以下是一个项目规范文件:
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]
将使用 2 个连接的目标创建一个项目,其中包含所有必需的配置和构建设置。
安装
要安装 XcodeGen,首先确保安装了 Xcode 11+,然后有以下几种方式来安装
Mint
mint install yonaskolb/xcodegen
Make
git clone https://github.com/yonaskolb/XcodeGen.gitcd XcodeGenmake install
Homebrew
brew install xcodegen
Swift 包管理器
用作 CLI
git clone https://github.com/yonaskolb/XcodeGen.gitcd XcodeGenswift run xcodegen
用作依赖
将以下内容添加到 Package.swift 文件的依赖项中:
.package(url: "https://github.com/yonaskolb/XcodeGen.git", from: "2.25.0"),
然后在需要的地方导入:import XcodeGenKit
使用
XcodeGen 的使用也非常简单,只需要运行以下命令:
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
可以查看更详细的使用信息。
涵盖iOS资源/源文件下载地址:github.com/uzi-yyds-co…