Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ
Package.swift मेनिफ़ेस्ट की संरचना समझें और लाइब्रेरी व निष्पादन योग्य उत्पाद परिभाषित करें।
Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Package.swift का अवलोकन
Package.swift, Swift पैकेज प्रबंधक के लिए घोषणापत्र है। इसमें पैकेज का नाम, Swift संस्करण, लक्ष्य, उत्पाद और निर्भरताएँ घोषित की जाती हैं।
import PackageDescription
let package = Package(
name: "MyLibrary",
platforms: [.iOS(.v16), .macOS(.v13)],
products: [],
dependencies: [],
targets: []
)लक्ष्य
लक्ष्य निर्माण की मूल इकाइयाँ हैं: .target (लाइब्रेरी/निष्पादन योग्य कोड) और .testTarget (परीक्षण कोड)।
.target(
name: "MyFeature",
dependencies: [],
path: "Sources/MyFeature"
),
.testTarget(
name: "MyFeatureTests",
dependencies: ["MyFeature"],
path: "Tests/MyFeatureTests"
)उत्पाद
उत्पाद यह परिभाषित करते हैं कि पैकेज उपयोगकर्ताओं के लिए क्या उपलब्ध कराता है: .library या .executable।
.library(
name: "MyFeature",
targets: ["MyFeature"]
),
.executable(
name: "MyTool",
targets: ["MyTool"]
)गतिशील बनाम स्थिर लाइब्रेरी
.dynamic या .static लिंकिंग निर्दिष्ट करें। स्थिर डिफ़ॉल्ट होती है और कम अतिरिक्त भार उत्पन्न करती है; गतिशील लाइब्रेरी मॉड्यूलों के बीच साझा करने की सुविधा देती है।
.library(
name: "MySDK",
type: .dynamic,
targets: ["MySDK"]
)बाहरी निर्भरताएँ
यूआरएल और संस्करण आवश्यकता के साथ दूरस्थ पैकेज निर्भरताएँ घोषित करें।
.package(url: "https://github.com/apple/swift-algorithms", from: "1.0.0"),
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", exact: "1.0.0")लक्ष्यों में बाहरी निर्भरताओं का उपयोग
.product(name:package:) का उपयोग करके लक्ष्य निर्भरताओं में बाहरी पैकेज उत्पादों का संदर्भ दें।
.target(
name: "MyApp",
dependencies: [
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "ComposableArchitecture", package: "swift-composable-architecture")
]
)स्थानीय पैकेज निर्भरताएँ
मोनोरेपो सेटअप के लिए या अपने स्वामित्व वाले पैकेज पर काम करते समय स्थानीय पैकेज निर्देशिका का संदर्भ दें।
.package(path: "../MySharedLibrary"),Swift संस्करण की आवश्यकताएँ
Package.swift के शीर्ष पर न्यूनतम Swift टूल्स संस्करण और पैकेज आरंभकर्ता में प्लेटफ़ॉर्म आवश्यकताएँ निर्धारित करें।
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "MyPackage",
platforms: [.iOS(.v17)],
// ...
)लक्ष्यों में संसाधन
resources: पैरामीटर का उपयोग करके गैर-कोड संसाधन (चित्र, JSON, स्थानीयकरण) शामिल करें।
.target(
name: "MyFeature",
resources: [
.process("Resources"),
.copy("Fixtures/test_data.json")
]
)निर्माण सेटिंग और C लक्ष्य
लक्ष्य C फ़्लैग और Swift सेटिंग कॉन्फ़िगर कर सकते हैं, जो C लाइब्रेरी को लपेटने या सशर्त संकलन के लिए उपयोगी है।
.target(
name: "CWrapper",
cSettings: [.headerSearchPath("include")],
swiftSettings: [.define("DEBUG", .when(configuration: .debug))]
)पैकेज समाधान
निर्भरताएँ प्राप्त करने के लिए swift package resolve चलाएँ। हल किए गए संस्करण Package.resolved में संग्रहीत होते हैं।
// Commands:
// swift package resolve – fetch dependencies
// swift package update – update to latest compatible versions
// swift build – build the package
// swift test – run testsत्वरित जाँच
Package.swift का कौन-सा तत्व यह परिभाषित करता है कि पैकेज उसे उपयोग करने वाले अन्य पैकेजों या ऐप्स को क्या उपलब्ध कराता है?
पाठ का पुनरावलोकन
Package.swift में targets निर्माण इकाइयाँ हैं, products उन्हें उपयोगकर्ताओं के लिए उपलब्ध कराते हैं और dependencies दूरस्थ या स्थानीय पैकेजों का संदर्भ देते हैं। बाहरी लक्ष्यों को लिंक करने के लिए .product(name:package:) का उपयोग करें। टीम परियोजनाओं में संस्करणों को स्थिर रखने के लिए Package.resolved को कमिट करें।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ” में मैं क्या सीखूँगा?
Package.swift मेनिफ़ेस्ट की संरचना समझें और लाइब्रेरी व निष्पादन योग्य उत्पाद परिभाषित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Package.swift: लक्ष्य, उत्पाद और निर्भरताएँ
- स्थानीय पैकेज और फ़ीचर मॉड्यूल
- बाइनरी लक्ष्य और XCFrameworks
- संस्करण, टकराव समाधान और Swift Plugins