2013-07-11 9 views
14

में किसी भी प्रोजेक्ट पर सिर्फ .a फ़ाइल जोड़ सकता हूं। मैं स्थिर पुस्तकालय कैसे बना सकता हूं और आईओएस में किसी भी प्रोजेक्ट पर केवल .a फ़ाइल जोड़ सकता हूं।मैं स्थिर पुस्तकालय कैसे बना सकता हूं और आईओएस

मैंने ऐसा करने की कोशिश की लेकिन यह नहीं कर सका।

अग्रिम

+1

[आईओएस स्टेटिक पुस्तकालय कैसे, और मुद्दों] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/5653374/ios-static-library-how-to-and-issues) – Amar

+0

यू काजल समझ में आ गया था? – dhaya

+0

हाय, नहीं। उदाहरण में आपने भेजा था पूरी परियोजना को जोड़ता है। मैं सिर्फ पुस्तकालय की .a फ़ाइल जोड़ना चाहता हूं। –

उत्तर

27

धन्यवाद आप स्थिर lib बनाने चाहते हैं, तो इसका मतलब यह लिंक का उल्लेख http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html

चरण 1: कक्षा

बनाएं: एक नया प्रोजेक्ट है, यह नाम "लॉगर"

चरण 2 बनाएं

आप जितनी चाहें उतनी कक्षाएं बना सकते हैं, हमारे ट्यूटोरियल में हम "लॉगर" नामक एक वर्ग तैयार करेंगे। तो, अब हमारे संसाधन में दो फाइलें होनी चाहिए। 1. Logger.h 2. Logger.m

चरण 3: कक्षा

चरण 4 में कुछ उपयोगी कोड डालें: नए लक्ष्य

फ़ाइल मेनू से नया लक्ष्य बनाएँ।

नए लक्ष्य करें कोको टच स्टेटिक लाइब्रेरी

चरण 5: फ़ाइलों संसाधन

स्टेटिक लाइब्रेरी के

का चयन करें "लॉगर" लक्ष्य जाओ चरण का निर्माण करने के लिए अनुपालन स्रोत अनुभाग में संकलित में जोड़े, जोड़े सभी एमएम और .एमएम फाइलें। कॉपी फ़ाइलें अनुभाग में, सभी .h फ़ाइलें और संसाधन फ़ाइलें जोड़ें।

बिल्ड के चरण

चरण 6: स्टेटिक लाइब्रेरी लक्ष्य के साथ परियोजना संकलित

iOS उपकरण सिम्युलेटर के लिए संकलित परियोजना आप निर्माण फ़ोल्डर में उत्पन्न दो अलग .a फ़ाइलें प्राप्त कर सकते हैं के लिए संकलित परियोजना।

.a फ़ाइल

चरण 7 खोजें: स्टेटिक लाइब्रेरी यूनिवर्सल

बनाओ अब आप दो अलग अलग पुस्तकालय पा सकते हैं, एक सिम्युलेटर के लिए है और एक iOS उपकरणों के लिए है।

नया फ़ोल्डर बनाएं और इसे लॉगरमेर्ज नाम दें। कॉपी libLogger.a डीबग-iPhoneOS फ़ोल्डर की फ़ाइल "LoggerMerge" यह libLogger_device.a कॉपी libLogger.a डीबग-iphonesimulator फ़ोल्डर की फ़ाइल के लिए नाम बदलने के लिए "LoggerMerge" नीचे आदेश लाइपो टर्मिनल आग के साथ libLogger_simulator.a ओपन LoggerMerge फ़ोल्डर में नाम बदलने के लिए -पहले "libLogger_simulator.a" "libLogger_device.alibLogger.a"

अब "आउटपुट", आप libLogger.a LoggerMerge फ़ोल्डर में पा सकते हैं, इस यूनिवर्सल स्थिर पुस्तकालय फ़ाइल है। अब, केवल एक चीज जो आपको चाहिए वह हैडर, ऊपर स्क्रीनशॉट देखें, फ़ोल्डर को दोनों फ़ोल्डर में शामिल किया गया है। बस इस फ़ोल्डर से हेडर फ़ाइल कॉपी करें।

चरण 8: टेस्ट स्टेटिक लाइब्रेरी

नया प्रोजेक्ट, नाम बनाएँ यह TestLogger आयात libLogger.a और हेडर फाइल आयात हेडर फाइल "Logger.h" कहीं भी आप अब उपयोग करने के लिए, डिफ़ॉल्ट अभ्यास के रूप में इस लॉगर वर्ग का उपयोग करना चाहते हैं। हमारे मामले में, [लॉगर लॉग: @ "टेस्ट स्ट्रिंग"]; सिम्युलेटर और डिवाइस दोनों में भागो परियोजना यह है कि !! आपके पास अपनी स्थिर पुस्तकालय है !!

+0

मैं नहीं खोल सकता आपके द्वारा भेजा गया लिंक। –

+1

मुझे .a फ़ाइल नहीं मिल रही है। यह कहाँ होना चाहिए। संकलित करने के बाद, उत्पाद फ़ोल्डर में मेरी लाइब्रेरी अभी भी लाल रंग के साथ है। क्यों? –

+0

हू कि कुछ भी काजल नहीं। बस डिवाइस से कनेक्ट करें, यह बदल जाएगा। – dhaya

10

चरण 1: एक नया स्टेटिक लाइब्रेरी प्रोजेक्ट

ओपन XCode शुरू और एक नई परियोजना शुरू करते हैं। आईओएस के तहत, लाइब्रेरी का चयन करें और "कोको टच स्टेटिक लाइब्रेरी" इसे "staticlibrary" के रूप में कहें। यह हमारे लिए एक अच्छी नई परियोजना तैयार करेगा जो .a फ़ाइल बनाता है।

चरण 2: अपनी स्थिर लाइब्रेरी कोड करें सबसे पहले हमें कुछ फाइलें जोड़ने की आवश्यकता है। अपनी प्रोजेक्ट में एक नया NSObject सबक्लास जोड़ें और इसे StaticClass नाम दें। फिर उन फ़ाइलों में कुछ उपयोगी कोड लिखें।

चरण 3: बिल्डिंग और अपनी लाइब्रेरी को वितरित करना एक बार जब आप अपनी लाइब्रेरी से खुश हों, तो बस इसे एक्सकोड में बनाएं। जाहिर है, बिल्ड और रन न करें क्योंकि आप इसे नहीं चला सकते (फिर भी जब तक आपके पास टेस्ट सूट न हो)। अब, एक्सकोड में उत्पाद समूह के अंतर्गत देखें और आपको lib (libraryName) .a नामक फ़ाइल दिखाई देनी चाहिए। हमारे मामले में, यह libstaticlibrary.a है।

सही है कि फाइल पर क्लिक करें और "खोजकर्ता में पता चलता है" का चयन करें। एक नया फ़ोल्डर आपके द्वारा बनाए गए है जहां आप अपने पुस्तकालय files.Now के सभी बांध दिया जाएगा, ज फ़ाइलों के सभी के साथ भी ऐसा में इस फ़ाइल खींचें। हमारे मामले में, इस नई निर्देशिका में बस StaticClass.h कॉपी करें। आपका निर्देशिका संरचना अब दिखना चाहिए:

FolderName 
|- libstaticlibrary.a 
|- StaticClass.h 

अब आप इस फ़ोल्डर ज़िप और लाखों लोगों के लिए होने आईओएस डेवलपर्स के लिए इसे बेच सकते हैं!

चरण 4: एक नई परियोजना में अपनी लाइब्रेरी लिंक करना तो अब है कि आप अपने चमकदार नया स्थिर पुस्तकालय का निर्माण किया है, यह किसी अन्य अनुप्रयोग में इसे बाहर का परीक्षण करने का समय है।

एक नया दृश्य-आधारित प्रोजेक्ट बनाएं (या जो भी यह वास्तव में कोई फर्क नहीं पड़ता)। इसे टेस्ट के रूप में नाम दें।

अब, बस परियोजना में इस फ़ोल्डर खींचें और XCode स्वचालित रूप से जोड़ने के सभी स्थापित करेगा। प्रतिलिपि करने के लिए संकेत मिलने पर, मैं आमतौर पर हां कहता हूं, लेकिन आप लाइब्रेरी का उपयोग करने के तरीके के आधार पर जो भी चाहें कर सकते हैं। कभी-कभी लिंकिंग और कॉपी नहीं करना बहुत फायदेमंद होता है यदि आपके पास एक ही लाइब्रेरी साझा करने वाली कई परियोजनाएं हैं। यह सुनिश्चित करता है कि वे सभी सबसे अद्यतित संस्करण का उपयोग करें।

अब आप नई परियोजना में हेडर फाइल के साथ .a फ़ाइल को देखना चाहिए।

चरण 5: स्टेटिक लाइब्रेरी कोड

का प्रयोग अब जब कि जोड़ने के सभी की स्थापना की है, तो आप किसी भी अन्य वर्ग की तरह अपने पुस्तकालय का उपयोग करें।

आगे स्पष्टीकरण के लिए http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial आशा है कि यह ट्यूटोरियल आपके लिए मदद करेगा।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। – mah

+0

स्टैक ओवरफ़्लो में आपका स्वागत है! संभावित समाधान का एक लिंक हमेशा स्वागत है, लेकिन कृपया [लिंक के चारों ओर संदर्भ जोड़ें] (http://meta.stackexchange.com/a/8259/169503) ताकि आपके साथी उपयोगकर्ताओं को कुछ पता चल जाएगा कि यह क्या है और यह क्यों है क्या आप वहां मौजूद हैं। यदि लक्षित साइट पहुंच योग्य नहीं है या स्थायी रूप से ऑफलाइन हो जाती है, तो हमेशा एक महत्वपूर्ण लिंक के सबसे प्रासंगिक भाग को उद्धृत करें। ध्यान दें कि किसी बाहरी साइट_ के लिंक से अधिक स्पष्ट रूप से होना संभव है [क्यों और कैसे कुछ उत्तरों हटा दिए गए हैं?] (Http://stackoverflow.com/help/deleted-answers)। –

+1

धन्यवाद क्योंकि मैं ओवरफ्लो ढेर करने के लिए नया हूं क्योंकि मुझे पता नहीं है कि मैंने आपके अनुरोध के आधार पर अपने उत्तर को अपडेट किया है – yashwanth777

संबंधित मुद्दे