Scheme 生成器是一个 Swift Package Manager 插件,用于快速更新您的 Scheme 文件。它非常适合模块化项目或使用 TCA 的项目。
添加到您的依赖项:.package(url: "https://github.com/mackoj/SchemeGeneratorPlugin.git", from: "0.5.5"),
。
此插件适用于 Xcode 14.1 / 14.0。
该插件将在 Xcode Report navigator 中显示消息和错误。
步骤 | 描述 | 图片 |
---|---|---|
0 | 要运行它,请右键单击要运行它的包。 | ![]() |
1 | 它将提示您运行它,您可以提供一个可选参数 (--confFile newName.json ) 来更改配置文件的名称。更改后,新的配置文件名将被存储。 |
![]() |
2 | 首次启动时,它会请求写入 schemesDirectory 的权限,为了使其正常工作,您必须选择“允许命令更改文件”。 | ![]() |
如果 schemesDirectory
指向工作空间内的 project.xcworkspace/xcshareddata/xcschemes
,您可能需要重启 Xcode 才能看到所有 Scheme 都已更新。
然后,您可以像这样从存储库的根目录调用该插件
swift package plugin scheme-generator
这将为您的软件包中定义的所有兼容目标生成 Scheme,并将它们写入 schemesDirectory
。
请注意,您还必须将 --allow-writing-to-directory
选项传递给 SwiftPM。 否则,SwiftPM 将抛出错误,因为插件未经明确许可写入软件包目录是违反沙箱的行为。
您可以将 --confFile newName.json
传递给 scheme-generator
,以更改配置文件的默认路径。 它将被保存,以便您不必在每次启动时都输入配置文件的名称。
要使用它,您必须在项目的根目录中设置一个名为 schemeGenerator.json
的配置文件。 此文件包含以下键:
schemesDirectory
:一个字符串,表示 Scheme 将被保存的位置(如果您使用 TCA,则可以将其放在工作空间中)。removeNotGeneratedSchemes
:一个布尔值,表示是否应删除 Package.swift 中不再存在的 Scheme。overwriteAlreadyGeneratedSchemes
:一个布尔值,表示是否应强制覆盖已存在的 Scheme。excludedSchemes
:一个字符串数组,表示已存在的 Scheme 文件的名称,不应进行处理。verbose
:一个布尔值,表示是否应在控制台中打印更多信息。{
"schemesDirectory": "Project/project.xcworkspace/xcshareddata/xcschemes",
"excludedSchemes": ["Target1Tests", "Target2Tests"],
"removeNotGeneratedSchemes": true,
"overwriteAlreadyGeneratedSchemes": false,
"verbose": true
}
如果在 #basic-usage 步骤 1 中解释的那样使用新的配置文件名,它将被保存,以便您不必在每次启动时都输入配置文件的名称。
您可以在 CI 中使用它来自动生成您的 Scheme。
swift package plugin --allow-writing-to-package-directory scheme-generator
它加载其配置以确定它可以做什么以及在哪里应用它。 然后,它从 Package.swift
加载所有产品。 应用过滤器以仅执行所需的操作,然后将文件写入 schemesDirectory
。
该方案基于一个模板。