إضافة التبعيات
من الشائع أن تعتمد المشاريع على مكتبات الطرف الثالث لتوفير وظائف إضافية. للقيام بذلك، قم بتشغيل الأمر التالي للحصول على أفضل تجربة لتحرير مشروعك:
tuist edit
سيتم فتح مشروع Xcode يحتوي على ملفات مشروعك. قم بتحرير ملف Package.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 كتبعية:
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) فقط لحل التبعيات. ثم يقوم تويست بتحويلها إلى مشاريع وأهداف Xcode لتحقيق أقصى قدر من التهيئة والتحكم.
تصور المشروع#
يمكنك تصور بنية المشروع من خلال تشغيل:
tuist graph
سيقوم الأمر بإخراج وفتح ملف graph.png.png في دليل المشروع:
![الرسم البياني للمشروع] (/images/guides/quick-start/graph.png)
استخدام التبعية#
قم بتشغيل tuist توليد لفتح المشروع في Xcode، وقم بإجراء التغييرات التالية على
ملف ContentView.swift.swift
import SwiftUI
import 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.