创建生成的项目
创建生成的项目 {#create-a-generated-project}
Section titled “创建生成的项目 {#create-a-generated-project}”在任何目录或现有项目目录中开始使用 Tuist 的最简单方法:
::: code-group
mise x tuist@latest -- tuist inittuist init:::
该命令将引导您完成
::: info 迁移现有项目
如果您想将现有项目迁移到生成的项目以改善开发体验并利用我们的
:::
添加依赖项 {#add-dependencies}
Section titled “添加依赖项 {#add-dependencies}”项目通常依赖第三方库来提供附加功能。为此,运行以下命令以获得最佳的项目编辑体验:
tuist edit将打开一个包含您项目文件的 Xcode 项目。编辑 Package.swift 并添加
import PackageDescription
#if TUIST import ProjectDescription
let packageSettings = PackageSettings( // 为特定的包产品自定义产品类型 // 默认为 .staticFramework // productTypes: ["Alamofire": .framework,] productTypes: [:] )#endif
let package = Package( name: "MyApp", dependencies: [ // 在此处添加您自己的依赖项: // .package(url: "https://github.com/Alamofire/Alamofire", from: "5.0.0"), // 您可以在此处了解有关依赖项的更多信息:https://docs.tuist.io/documentation/tuist/dependencies .package(url: "https://github.com/onevcat/Kingfisher", .upToNextMajor(from: "7.12.0")) // [!code ++] ])然后编辑项目中的应用目标,将 Kingfisher 声明为依赖项:
import ProjectDescription
let project = Project( name: "MyApp", targets: [ .target( name: "MyApp", destinations: .iOS, product: .app, bundleId: "dev.tuist.MyApp", infoPlist: .extendingDefault( with: [ "UILaunchStoryboardName": "LaunchScreen.storyboard", ] ), buildableFolders: [ "MyApp/Sources", "MyApp/Resources", ], dependencies: [ .external(name: "Kingfisher") // [!code ++] ] ), .target( name: "MyAppTests", destinations: .iOS, product: .unitTests, bundleId: "dev.tuist.MyAppTests", infoPlist: .default, sources: ["MyApp/Tests/**"], resources: [], dependencies: [.target(name: "MyApp")] ), ])然后运行 tuist install 以使用 Swift Package Manager 解析和拉取依赖项。
::: info SPM 作为依赖解析器
Tuist 推荐的依赖项方法仅使用 Swift Package Manager (SPM) 来解析依赖项。然后 Tuist 将它们转换为 Xcode 项目和目标,以获得最大的可配置性和控制权。
:::
可视化项目 {#visualize-the-project}
Section titled “可视化项目 {#visualize-the-project}”您可以通过运行以下命令来可视化项目结构:
tuist graph该命令将在项目目录中输出并打开一个 graph.png 文件:

使用依赖项 {#use-the-dependency}
Section titled “使用依赖项 {#use-the-dependency}”运行 tuist generate 在 Xcode 中打开项目,并对 ContentView.swift 文件进行以下更改:
import SwiftUIimport Kingfisher // [!code ++]
public struct ContentView: View { public init() {}
public var body: some View { Text("Hello, World!") // [!code --] .padding() // [!code --] }}
struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}从 Xcode 运行应用,您应该会看到从 URL 加载的图像。