XcodeGen

Swift Package Manager Platforms Swift Versions

XcodeGen

XcodeGen 是一个用 Swift 编写的命令行工具,它使用你的文件夹结构和项目规范来生成你的 Xcode 项目。

项目规范是一个 YAML 或 JSON 文件,用于定义你的 targets、configurations、schemes、自定义构建设置和许多其他选项。你的所有源目录都会被自动解析和引用,同时保留你的文件夹结构。许多地方都使用了合理的默认值,因此你只需要自定义需要的部分。非常复杂的项目也可以使用更高级的功能来定义。

给定一个示例项目规范

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 个连接的 targets,以及所有必需的配置和构建设置。请参阅 Project Spec 文档,了解你可以指定的所有选项,以及 Usage 文档,了解更多通用文档。

安装

首先确保已安装 Xcode 11。

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 文件的 dependencies 中

.package(url: "https://github.com/yonaskolb/XcodeGen.git", from: "2.35.0"),

然后根据需要在任何地方导入:import XcodeGenKit

用法

只需运行

xcodegen generate

这将在当前目录中查找名为 project.yml 的项目规范,并生成一个以规范中定义的名称命名的 Xcode 项目。

选项

还有其他命令,例如 xcodegen dump,它可以输出多种不同格式的已解析规范,或将其写入文件。使用 xcodegen help 查看更详细的用法信息。

依赖关系图

点击展开!

如何导出依赖关系图

到 stdout

xcodegen dump --type graphviz

到一个文件

xcodegen dump --type graphviz --file Graph.viz

在实现过程中,使用 GraphvizOnlineWebGraphvizMacOS 上的 Graphviz 验证了 graphviz 格式。

编辑

git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
swift package generate-xcodeproj

这使用 Swift Package Manager 创建一个 xcodeproj 文件,你可以在 Xcode 中打开、编辑和运行它,这使得编辑任何代码都更容易。

如果要在 Xcode 中运行时传递任何必需的参数,你可以编辑 scheme 以包含启动参数。

文档

替代方案

如果 XcodeGen 不能满足你的需求,请尝试这些优秀的替代方案

致谢

此工具由以下项目驱动

此工具的灵感来自

贡献

欢迎提交 Pull requests 和 issues。请针对 bugs、功能或文档打开任何 issues 和 PRs。

许可证

XcodeGen 在 MIT 许可证下获得许可。有关更多信息,请参阅 LICENSE