是否可以使用 Tuist 将通常放置在“Packages”组(Xcode 项目中的组或文件夹)中的 SPM 包依赖项组织到子组或子文件夹中?
自 Tuist 4.12.1 起不再适用。 首先让我们来了解一下 Tuist 中使用 Swift 包的两种方式。
let project = Project(name: "You Project Name",
packages: [...],
targets: [...]
....
// Package.swift file
#if TUIST
import ProjectDescription
import ProjectDescriptionHelpers
let packageSettings = PackageSettings(
productTypes: // define custom types for products,
targetSettings: // define custom settings per target per package,
projectOptions: // define custom options per package,
)
#endif
let package = Package(
name: "PackageName",
dependencies: [
.package(url: "https://github.com/facebook/facebook-ios-sdk", .upToNextMajor(from: "17.0.0")),
.package(url: "https://github.com/firebase/firebase-ios-sdk.git", exact: "10.23.1"),
]
)
// Project.swift file
let project = Project(name: "You Project Name",
targets: [...])
In each target you define an SPM dependency using .external("FirebaseCrashlytics")
....
您正在使用 Tuist 描述软件包的普通用法。建议使用 Package.swift 文件来使用外部(即 SPM) - link.
回答你的问题——不。 (适用于 Tuist 4.12.1)
所有本地包都将位于生成的项目/工作空间中的
Packages
文件夹下。所有外部 Packages
将显示为常规 SPM 产品