Scheme 生成器

Scheme 生成器是一个 Swift Package Manager 插件,用于快速更新您的 Scheme 文件。它非常适合模块化项目或使用 TCA 的项目。

⚠️此版本为 Beta 版

安装

添加到您的依赖项:.package(url: "https://github.com/mackoj/SchemeGeneratorPlugin.git", from: "0.5.5"),

此插件适用于 Xcode 14.1 / 14.0。

基本用法

该插件将在 Xcode Report navigator 中显示消息和错误。

步骤 描述 图片
0 要运行它,请右键单击要运行它的包。 Capture d’écran 2022-10-21 à 13 16 35
1 它将提示您运行它,您可以提供一个可选参数 (--confFile newName.json) 来更改配置文件的名称。更改后,新的配置文件名将被存储。 Capture d’écran 2022-10-21 à 13 38 29
2 首次启动时,它会请求写入 schemesDirectory 的权限,为了使其正常工作,您必须选择“允许命令更改文件”。 Capture d’écran 2022-10-21 à 01 35 07

如果 schemesDirectory 指向工作空间内的 project.xcworkspace/xcshareddata/xcschemes,您可能需要重启 Xcode 才能看到所有 Scheme 都已更新。

如何在 CLI 中使用

然后,您可以像这样从存储库的根目录调用该插件

swift package plugin scheme-generator

这将为您的软件包中定义的所有兼容目标生成 Scheme,并将它们写入 schemesDirectory

请注意,您还必须将 --allow-writing-to-directory 选项传递给 SwiftPM。 否则,SwiftPM 将抛出错误,因为插件未经明确许可写入软件包目录是违反沙箱的行为。

您可以将 --confFile newName.json 传递给 scheme-generator,以更改配置文件的默认路径。 它将被保存,以便您不必在每次启动时都输入配置文件的名称。

配置

要使用它,您必须在项目的根目录中设置一个名为 schemeGenerator.json 的配置文件。 此文件包含以下键:

{
  "schemesDirectory": "Project/project.xcworkspace/xcshareddata/xcschemes",
  "excludedSchemes": ["Target1Tests", "Target2Tests"],
  "removeNotGeneratedSchemes": true,
  "overwriteAlreadyGeneratedSchemes": false,
  "verbose": true
}

如果在 #basic-usage 步骤 1 中解释的那样使用新的配置文件名,它将被保存,以便您不必在每次启动时都输入配置文件的名称。

CI

您可以在 CI 中使用它来自动生成您的 Scheme。

swift package plugin --allow-writing-to-package-directory scheme-generator

工作原理?

它加载其配置以确定它可以做什么以及在哪里应用它。 然后,它从 Package.swift 加载所有产品。 应用过滤器以仅执行所需的操作,然后将文件写入 schemesDirectory

该方案基于一个模板。