Xcode: सादे भाषा में एक लक्ष्य और योजना क्या है?


204

हाँ शीर्षक यह कहता है :-) सादे अंग्रेजी भाषा में उनका क्या मतलब है? मैं वास्तव में Apple की वेबसाइट पर दिए गए स्पष्टीकरण को नहीं समझता और मुझे अपने लक्ष्य का नाम बदलने की आवश्यकता है और मुझे डर है कि इसके बाद कुछ भी काम न करे।



पढ़ने लायक ब्लॉग .just2us.com
2009/

जवाबों:


309

मैंने कार्यक्षेत्र और परियोजना में भी जोड़ा है!

  • कार्यक्षेत्र - एक या एक से अधिक प्रोजेक्ट शामिल हैं । ये परियोजनाएं आमतौर पर एक दूसरे से संबंधित होती हैं
  • परियोजना - इसमें कोड और संसाधन शामिल हैं, आदि (आपको इनका उपयोग किया जाएगा!)
  • लक्ष्य - प्रत्येक परियोजना में एक या अधिक लक्ष्य होते हैं।
    • प्रत्येक लक्ष्य उस परियोजना के लिए बिल्ड सेटिंग्स की एक सूची को परिभाषित करता है
    • प्रत्येक लक्ष्य निर्माण के दौरान शामिल / उपयोग करने के लिए कक्षाओं, संसाधनों, कस्टम स्क्रिप्ट आदि की एक सूची को भी परिभाषित करता है।
    • लक्ष्य का उपयोग आमतौर पर एक ही परियोजना के विभिन्न वितरणों के लिए किया जाता है।
      • उदाहरण के लिए, मेरी परियोजना में दो लक्ष्य हैं, एक "सामान्य" बिल्ड और एक "कार्यालय" बिल्ड जिसमें अतिरिक्त परीक्षण विशेषताएं हैं और इसमें ट्रैक को बदलने के लिए कई पृष्ठभूमि संगीत ट्रैक और एक बटन हो सकता है (जैसा कि वर्तमान में होता है)।
      • जैसे ही आप उन्हें जोड़ते हैं, आपको अपने डिफ़ॉल्ट लक्ष्य में कक्षाएं और संसाधन जोड़ने के लिए उपयोग किया जाएगा।
      • आप चुन सकते हैं और चुन सकते हैं कि कौन से वर्ग / संसाधन किस लक्ष्य में जोड़े जाते हैं।
        • मेरे उदाहरण में, मेरे पास एक "डीबगहैंडलर" वर्ग है जिसे मेरे कार्यालय के निर्माण में जोड़ा जाता है
      • यदि आप परीक्षण जोड़ते हैं, तो यह एक नया लक्ष्य भी जोड़ता है।
  • योजना - एक योजना परिभाषित करती है कि जब आप "बिल्ड", "टेस्ट", "प्रोफाइल", आदि दबाते हैं, तो क्या होता है।
    • आमतौर पर, प्रत्येक लक्ष्य में कम से कम एक योजना होती है
    • आप स्कीम> योजनाओं को प्रबंधित करके और "ऑटोक्रीट स्कीम्स नाउ" को दबाकर अपने लक्ष्य के लिए योजनाओं को स्वतः प्राप्त कर सकते हैं।

आइए कोशिश करें कि क्या मैं सही ढंग से समझ पाया हूं ... मैं एक ऐप प्रोग्रामिंग कर रहा हूं और दो लक्ष्य बना रहा हूं। एक जो मैं ऐप स्टोर पर अपलोड करूंगा और एक जिसमें मैं उसी ऐप के अगले संस्करण को पहले से ही विकसित कर रहा हूं। और योजनाओं में मैं उदाहरण के लिए दोनों योजनाओं में एक योजना चलाऊंगा और एक योजना डीबग के लिए? लेकिन मुझे इसके लिए विभिन्न योजनाओं की आवश्यकता क्यों है? मैं बी.जे. होमर के उस लाभ को नहीं समझ पाया था
१ '

एफडब्ल्यूआईडब्ल्यू, मैं रिलीज और डिबग के लिए विभिन्न योजनाओं का उपयोग नहीं करता हूं, जब तक कि मैं अपने जवाब में वर्णित अतिरिक्त डिबग सुविधाओं को नहीं जोड़ रहा हूं।
जेम्स वेबस्टर

2
शानदार स्पष्टीकरण भाई! ! !
सागर कलाथिल

6
आपका क्या मतलब है कि आपके कार्यालय के निर्माण में नीचे एक संगीत बटन है। क्या आपके वास्तविक ऐप में अतिरिक्त कोड है जो केवल कार्यालय निर्माण में सक्रिय है या आपके मैक पर संगीत चलता है। क्षमा करें, मैं भ्रमित हूँ
3366784

इस तरह की परिभाषा क्या चीजें प्रत्येक अवधारणा को बनाती है, लेकिन प्रत्येक आइटम का उद्देश्य नहीं । मेरे लिए ओपी के बारे में क्या पूछ रहा था।
ओ'रोनी

66

एक लक्ष्य एक्सकोड में "बिल्ड" चलाकर बनाया गया एक अंतिम उत्पाद है। यह एक ऐप, या एक फ्रेमवर्क, या स्टैटिक लाइब्रेरी या एक यूनिट टेस्ट बंडल हो सकता है। जो कुछ भी है, यह आम तौर पर "निर्मित उत्पादों" फ़ोल्डर में एक आइटम से मेल खाता है।

एक योजना उन लक्ष्यों के संग्रह का प्रतिनिधित्व करती है जो आप एक साथ काम करते हैं। यह परिभाषित करता है कि जब आप Xcode (रन, टेस्ट, प्रोफाइल, आदि) में विभिन्न क्रियाओं को चुनते हैं तो कौन से लक्ष्य का उपयोग किया जाता है। अक्सर, आपके पास बस एक योजना होगी, जो रन, आर्काइव और प्रोफाइल क्रियाओं के लिए मुख्य ऐप लक्ष्य का उपयोग करती है, और एक परीक्षण कार्रवाई के लिए इकाई परीक्षण लक्ष्य। यदि आप दो संबंधित ऐप बना रहे हैं, तो आपके पास दो योजनाएं हो सकती हैं जो एक ही यूनिट टेस्ट बंडल का उपयोग करती हैं लेकिन विभिन्न ऐप लक्ष्य।

योजनाओं का मुख्य लाभ (Xcode 4 में पेश किया गया) यह है कि वे आपको चयनित लक्ष्य को टॉगल करने की आवश्यकता के बिना आपके ऐप और आपके यूनिट परीक्षणों को चलाने के बीच स्विच करने की अनुमति देते हैं।


61

मैं एक दृश्य व्यक्ति हूं, इसलिए इस अवधारणा को समझाने के लिए मैं एक आरेख का उपयोग करूंगा।

जब आपके पास कई लक्ष्य होते हैं तो वे Xcode के रन, टेस्ट, प्रोफ़ाइल क्रियाओं के साथ एक-से-एक हो सकते हैं, यह अवधारणा इस योजना को परिभाषित करती है

यहां छवि विवरण दर्ज करें

एक लक्ष्य अपने का एक संस्करण है परियोजना , यानी लक्ष्य बनाया समय के दौरान उपयोग करने के लिए कक्षाओं और संसाधनों में थोड़ा भिन्न होते हैं। एक परियोजना में अलग-अलग वितरण आवश्यकताओं के लिए कई अंतर्निहित समय सेटिंग हो सकती हैं।


7
यह आरेख गलत लगता है। एक योजना को एक विशेष लक्ष्य से जोड़ा जाना चाहिए, मैं यह नहीं देख रहा हूं कि एक योजना के भीतर आपके पास कितने लक्ष्य हो सकते हैं।
बून

6
@ बून नहीं, लापरवाही से सही है। स्कीम एडिटर में, बाईं ओर स्थित 'बिल्ड' आइटम पर क्लिक करें। दाहिने हाथ के क्षेत्र में, '+' पर क्लिक करें और आप इस योजना में अधिक लक्ष्य जोड़ सकते हैं। वांछित के रूप में बक्से टिक। इन लक्ष्यों के निष्पादनयोग्य तब निष्पादन योग्य ड्रॉप-डाउन में अन्य कार्यों (रन, प्रोफ़ाइल, आदि) में उपलब्ध हैं।
9

यह अच्छा है, लेकिन यह योजनाओं के बिल्ड कॉन्फ़िगरेशन भाग को याद कर रहा है। मुझे लगता है कि कार्यों के संग्रह के रूप में योजना (रन, टेस्ट, प्रोफ़ाइल) लक्ष्यों के संयोजन से मेल खाती है और कॉन्फ़िगरेशन (डिबग, रिलीज़, क्यूए, ठेस, आदि) का निर्माण करती है।
स्टीव मोजर

3

Workspace( .xcworkspace) - कई का एक कंटेनर है projects। इसे [अबाउट] के अगले चरण के रूप में बनाया गया थाcross-project references

  • Workspaceइसमें सभी schemesशामिल हैंprojects
  • Workspaceसभी [के बारे में] संभालती हैimplicit dependencies

टिप्पणियों:

  • यह एक ही अंदर विभिन्न परियोजनाओं के साथ काम करना सुरक्षित है workspaceऔर पकड़ नहीं हैCouldn't load Project.xcodeproj because it is already opened from another project or workspace
  • Cocoapods[के बारे में]workspace जहांPodsपरियोजनाबनाता है के साथ काम करना

Project( .xcodeproj) - यह targetsऔर के लिए एक कंटेनर है scheme। यह कोड फ़ाइलों, संसाधनों को परिभाषित करता है ...

Target- PBXNativeTargetअनुभाग। निर्माण सेटिंग का एक विशिष्ट सेट परिभाषित करता है:

  • Application target
  • Library and framework targets
  • Test
  • Aggregate[के बारे में] । जैसे यहUniversal frameworkयाबनाने के लिए प्रयोग किया जाता हैUmbrella framework

Scheme- Project'sएक्सकोड में कार्रवाई के लिए एक कॉन्फ़िगरेशन: रन , परीक्षण , प्रोफ़ाइल , विश्लेषण और संग्रहसाझा किया Schemaजा सकता है जो CI में आपकी मदद करता है, ... और स्थित:Carthage

<project_path>/<project_name>.xcodeproj/xcshareddata/xcschemes

Dependency- Targetsहो सकता है dependencies। निर्भरता के खिलाफ एक स्रोत लिंक है। इन निर्भरताओं को सांख्यिकीय या गतिशील रूप से जोड़ा जा सकता है [के बारे में] उनमें से दो प्रकार हैं:

  • Explicit Dependency[के बारे में] - निर्भरता का स्रोत कोड जो एक ही परियोजना या नेस्टेड प्रोजेक्ट में स्थित है
  • Implicit Dependency[के बारे में] - निर्भरता का स्रोत / बंद कोड जो उस परियोजना में स्थित है जो उसी कार्यक्षेत्र का एक हिस्सा है।

[शब्दावली]

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.