Skip to content

إضافة التبعيات

من الشائع أن تعتمد المشاريع على مكتبات الطرف الثالث لتوفير وظائف إضافية. للقيام بذلك، قم بتشغيل الأمر التالي للحصول على أفضل تجربة لتحرير مشروعك:

bash
tuist edit

سيتم فتح مشروع Xcode يحتوي على ملفات مشروعك. قم بتحرير ملف Package.swift.swift وأضف

swift
// swift-tools-version: 5.9
import PackageDescription
#if TUIST
import ProjectDescription
let packageSettings = PackageSettings(
// Customize the product types for specific package product
// Default is .staticFramework
// productTypes: ["Alamofire": .framework,]
productTypes: [:]
)
#endif
let package = Package(
name: "MyApp",
dependencies: [
// Add your own dependencies here:
// .package(url: "https://github.com/Alamofire/Alamofire", from: "5.0.0"),
// You can read more about dependencies here: https://docs.tuist.io/documentation/tuist/dependencies
.package(url: "https://github.com/onevcat/Kingfisher", .upToNextMajor(from: "7.12.0")) // [!code ++]
]
)

ثم قم بتحرير هدف التطبيق في مشروعك للإعلان عن Kingfisher كتبعية:

swift
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] (https://www.swift.org/documentation/package-manager/).

Spm As A Dependency Resolver

النهج الموصى به من تويست للتبعيات يستخدم مدير حزم سويفت (SPM) فقط لحل التبعيات. ثم يقوم تويست بتحويلها إلى مشاريع وأهداف Xcode لتحقيق أقصى قدر من التهيئة والتحكم.

تصور المشروع#

يمكنك تصور بنية المشروع من خلال تشغيل:

bash
tuist graph

سيقوم الأمر بإخراج وفتح ملف graph.png.png في دليل المشروع:

![الرسم البياني للمشروع] (/images/guides/quick-start/graph.png)

استخدام التبعية#

قم بتشغيل tuist توليد لفتح المشروع في Xcode، وقم بإجراء التغييرات التالية على ملف ContentView.swift.swift

swift
import SwiftUI
import Kingfisher // [!code ++]
public struct ContentView: View {
public init() {}
public var body: some View {
Text("Hello, World!") // [!code --]
.padding() // [!code --]
KFImage(URL(string: "https://cloud.tuist.io/images/[email protected]")!) // [!code ++]
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

شغِّل التطبيق من Xcode، وسترى الصورة محمَّلة من عنوان URL.