通过 tuist/XcodeProj 以编程方式将文件添加到本机目标

Add file to native target programmatically via tuist/XcodeProj

我正在使用 https://github.com/tuist/XcodeProj 尝试将文件添加到特定目标。基本上我想通过 ruby 镜像使用 Swift:

完成以下操作
require 'xcodeproj'
source_root = '/path/to/xcodeproj'
project = Xcodeproj::Project.open(source_root)

group = project.main_group['TestProject']['TestGroup']
file = group.new_file('TestFile.swift')

target = project.targets.first
target.add_file_references([file])

project.save

到目前为止,我已经设法将实际文件添加到项目中,但无法将其添加到特定目标:

let sourceRoot = Path("/path/to/xcodeproj")
let project = try XcodeProj(path: sourceRoot)

let target = project.pbxproj.targets(named: "some target name").first!
let group = project.pbxproj.groups.first!

let fileReference = try group.addFile(
  at: Path("TestFile.swift"),
  sourceTree: .group,
  sourceRoot: sourceRoot
)

try project.write(path: Path(sourceRoot))

我的问题是,如何使用我上面提到的库以编程方式将添加到项目的文件引用 fileReference 添加到特定目标中?

尝试如下操作(有关详细信息,请查看目标对象 API)

try target.sourcesBuildPhase().add(file: fileReference)