8

मैं निम्नलिखित अब तक क्या किया है:Xcode में कार्यस्थान का उपयोग कर स्थिर पुस्तकालय (1.1 बीटा 2) coco2d से जोड़ने के लिए कैसे 4.3.1

  1. बनाया कार्यक्षेत्र
  2. जोड़ा अपने प्रोजेक्ट
  3. जोड़ा गया Cocos2d आईओएस प्रोजेक्ट (प्रोजेक्ट नेविगेटर में ड्रॉप करने से खींचकर)। यह मेरी परियोजना का एक भाई है (बच्चा नहीं)।
  4. मेरी परियोजना में, निर्माण के चरण में,
  5. अपने प्रोजेक्ट के निर्माण सेटिंग्स में libcocos2d.a से जुड़ा हुआ - हमेशा सेट खोज हां में रास्तों
  6. बनाया स्रोत पेड़ चर की ओर इशारा करते Cocos2d आईओएस xcodeproj फ़ाइल वाले फ़ोल्डर पर।
  7. मेरे प्रोजेक्ट के उपयोगकर्ता शीर्षलेख पथ में, चरण 6 से स्रोत पेड़ चर जोड़ा गया। रिकर्सिव के रूप में सेट करें। 8. प्रोजेक्ट नेविगेटर में, libcocos2d.a लाइब्रेरी पर क्लिक किया गया (यह लाल दिखाई देता है)। "उत्पादों को बनाने के लिए सापेक्ष" स्थान सेट करें, आप इसे Xcode 4.3.1 में दाईं ओर सबसे अधिक विंडो में सेट करते हैं।
  8. बंद वर्कस्पेस, और TextWrangler में pbxproj फ़ाइल खोली गई। Libcocos2d.a युक्त पथ के लिए खोजें पथ निकालें, इसलिए प्रविष्टि केवल "libcocos2d.a" पढ़ती है। ऐसा इसलिए है क्योंकि लाइब्रेरी को संकलित करने के बाद भी ऐप की एक ही निर्माण निर्देशिका में है।

कोडेन्स और स्वत: पूर्ण कार्य। लेकिन यह संकलित नहीं होगा। लगभग 70 लिंकर त्रुटियों पॉप अप जब मैं निर्माण करने के लिए, की तरह सभी कह कुछ और प्रयास करें: वास्तुकला ARMv7 के लिए

अपरिभाषित प्रतीक: "_OBJC_CLASS _ $ _ CCDirector", से संदर्भित: AppDelegate.o objc- में ObjC-वर्ग-रेफरी वर्ग-रेफरी ViewController.o "_kEAGLColorFormatRGB565" में, से संदर्भित: - [RIAppDelegate applicationDidFinishLaunching:] AppDelegate.o "_OBJC_CLASS _ $ _ CCTexture2D", में से संदर्भित: AppDelegate.o "_OBJC_CLASS_ $ में ObjC-वर्ग-रेफरी _EAGLView ", से संदर्भित: एपीजेसी-क्लास-रेफरी AppDelegate.o

अगर मैं सिम्युलेटर के लिए निर्माण करने की कोशिश करता हूं, तो armv7 के बजाय, यह कहता है कि प्रतीक i386 के लिए गायब हैं। Cocos2d प्रोजेक्ट स्वयं संकलित करता है & ठीक बनाता है। यह मेरी परियोजना है जिसमें उपर्युक्त त्रुटियां हैं।

cocos2d लाइब्रेरी बनाने के बाद मेरे ऐप की बिल्ड निर्देशिका में मौजूद है।

संपादित करें: उल्लेख करने के लिए भूल गए। मैंने अपनी परियोजना के लिए समांतर में निर्माण नहीं करने के लिए योजना भी संपादित की। मैंने cocos2d लक्ष्य भी जोड़ा, और इसे सूची का शीर्ष बना दिया (इसलिए इसे पहले बनाना चाहिए)।

संपादित करें: स्पष्टीकरण के लिए - ऊपर वर्णित रूप में pbxproj फ़ाइल में परिवर्तन करने के बाद, libcocos2d.a फ़ाइल अब लाल नहीं है। यह सामान्य दिखता है। इसके अलावा मेरा ऐप भी बनाया गया है, भले ही लिंक त्रुटियां हैं और बिल्ड विफल हो जाती है। (यह वास्तव में निर्माण नहीं करता है, लेकिन उत्पाद "लाल" नहीं है। एक ऐप फ़ाइल उसी स्थान पर बनाई गई है जहां cocos2d लाइब्रेरी बनाई गई है।

+0

जब तक आपको वास्तव में ऐसा करने की ज़रूरत नहीं है तो आपको कोबॉल्ड 2 डी (http://www.kobold2d.com) का उपयोग करने पर विचार करना चाहिए। कोकोस 2 डी पहले से ही स्थिर पुस्तकालय के रूप में स्थापित है, और इसी तरह अन्य सभी पुस्तकालय भी हैं, और एआरसी भी सक्षम है। आपको इन तकनीकी चीजों में से * के बारे में चिंता करने की आवश्यकता नहीं है। बस अपनी परियोजना पर काम करना शुरू करें और काम करना शुरू करें। – LearnCocos2D

+0

धन्यवाद स्टीफन, लेकिन मुझे Kobol2D का उपयोग करने में कोई दिलचस्पी नहीं है। –

उत्तर

11

मैं टेम्पलेट के बजाय कोकोस 2 डी को स्थिर पुस्तकालय के रूप में उपयोग करने के लिए थोड़ी देर के लिए प्रयास कर रहा हूं। कारण यह है कि यह एक मॉड्यूलर फैशन में अपनी परियोजना को विकसित करना आसान बनाता है। इसके अलावा, यह cocos2d संस्करणों के बीच स्विच करना आसान बनाता है और इसी तरह। कोकोस 2 डी-एक्स मंचों को खोजने के बाद मुझे यह लिंक मिला: http://cfc.kizzx2.com/index.php/cocos2d-x-with-xcode-4-from-scratch-without-template/

मुझे उन ढांचे को पता चला जो मुझे जोड़ने की ज़रूरत थी, और इससे सभी लिंकिंग समस्याओं को हल किया गया।

मैंने अभी भी स्टोर में कोई एप्लिकेशन सबमिट नहीं किया है, इसलिए यदि कोई अनुभव वाला कोई व्यक्ति यह जांचने के लिए देख सकता है कि क्या कोई नुकसान/त्रुटियां हैं तो यह बहुत अच्छा होगा। अंग्रेजी मेरे लिए दूसरी भाषा है, इसलिए कृपया ध्यान न दें। यह cocos2d1.1beta2 और Xcode 4.3.1

  1. का उपयोग कर एक Xcode कार्यक्षेत्र
  2. नेविगेट Cocos2d xcodeproj फ़ाइल (आईओएस/मैक) वाले फ़ोल्डर पर बनाएं किया गया था। यह वह जगह है जहां आप इसे डाउनलोड करने के बाद cocos2d unzipped।
  3. एक्सकोडप्रोज़ फ़ाइल को एक्सकोड की नेविगेटर विंडो में खींचें और छोड़ें। (अधिकांश विंडो छोड़ दी गई)।
  4. cocos2d प्रोजेक्ट फ़ाइल के पास छोटे त्रिकोण पर क्लिक करें ताकि इसकी सभी सामग्री गायब हो जाए।
  5. नेविगेटर और "नई परियोजना" पर राइट क्लिक करके अपने कार्यक्षेत्र में एक नई परियोजना जोड़ें। सुनिश्चित करें कि परियोजना को cocos2d प्रोजेक्ट के लिए भाई के रूप में जोड़ा गया है, न कि बच्चे के रूप में। मैं एकल खिड़की आवेदन (आईओएस)
  6. चुना है इस नई परियोजना में, निर्माण सेटिंग में जाना, और परिवर्तन "हमेशा खोजें उपयोगकर्ता पथ" "हाँ"
  7. स्थान अपने Cocos2d फ़ोल्डर में "उपयोगकर्ता हैडर खोजें की जोड़ें पथ "। यदि आप चाहें तो आप कोकोड 2 डी फ़ोल्डर को एक्सकोड में स्रोत पेड़ों की अपनी सूची में जोड़ सकते हैं, और इसके बजाय यहां चर के नाम को भरें। उदाहरण: $ {COCOS2D_SRC}। यह आसान है अगर बाद में आप निर्माण पर्यावरण की फ़ोल्डर संरचना को बदलना चाहते हैं।

  8. लक्ष्य पर क्लिक करें और बिल्ड चरण टैब का चयन करें। आप अपनी लाइब्रेरी के साथ निम्नलिखित बाइनरी लिंक करना चाहते हैं। सुनिश्चित करें कि वे वहां हैं। libz.dylib libcocos2d.a libxml2.dylib OpenGLES.framework QuartzCore.framework UIKit.framework Foundation.framework CoreGraphics.framework

तो libcocos2d.a है "लाल", तो डॉन इसके बारे में चिंता मत करो। यह अभी भी ठीक से संकलित/लिंक करता है।

  1. बिल्ड सेटिंग्स के तहत, "केवल सक्रिय आर्किटेक्चर बनाएं" बदलें।

नहीं तो आप फ़ाइल /Users/Pteriedaktyl/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/libcocos2d.a अनदेखी त्रुटि आ सकती है, फ़ाइल संग्रह के लिए बनाया गया था जो वास्तुकला नहीं किया जा रहा है लिंक (armv6)

  1. अपनी info.plist फ़ाइल में, "आवश्यक डिवाइस क्षमताओं" के अंदर प्रविष्टि को निकालना सुनिश्चित करें जो armv7 कहता है। अन्यथा, आपका कोड केवल नए उपकरणों पर ही चलाएगा।

अब आप सेट हैं! आप भाई परियोजना से cocos2d api तक पहुंचने में सक्षम होना चाहिए।यदि आप कभी भी cocos2d का अपना संस्करण बदलना चाहते हैं, तो आपको केवल कार्यक्षेत्र में मौजूद cocos2d प्रोजेक्ट को बदलने की आवश्यकता है, स्रोत पेड़ पथ (यदि आवश्यक हो) को अपडेट करें, और नए libCocos2d.a

परीक्षण: बस इसे आज़माने के लिए, मैंने ऐप प्रतिनिधि को संशोधित किया और मेरी पुरानी हैलो वर्ल्ड प्रोजेक्ट्स में से किसी एक से कोड से मेल खाने के लिए नियंत्रक कोड देखें।

कृपया इसे आज़माएं, और यदि आपको कोई समस्या है तो थ्रेड में जोड़ें।

1

libCocos2d.a के लिए उपयोगिता फलक में, नीचे पहचान उत्पाद और प्रकार जहां आप बिल्ड उत्पाद के सापेक्ष लाइब्रेरी सेट करते हैं, नीचे स्क्रॉल करें और सुनिश्चित करें कि लक्ष्य लक्ष्य आपके लक्ष्यों के लिए चुना गया है। यदि ऐसा नहीं है, तो इसमें इसे लक्ष्य द्वारा बनाए गए वास्तविक निर्माण में शामिल नहीं किया जाएगा। कम से कम, यही एकमात्र तरीका था जिसे मैं इस मुद्दे को पुन: उत्पन्न करने में सक्षम था।

+0

तो क्या आप कह रहे हैं कि जब आप मेरे द्वारा उठाए गए चरणों का पालन करते हैं, तो आपको कोई त्रुटि दिखाई नहीं दे रही है? –

+0

जब तक लक्ष्य सदस्यता हाँ से सेट की जाती है, तब तक यह काम करता है और कोई त्रुटि नहीं देता है। –

+0

क्या आपके ऐप में कोई कोड है जो cocos2d api तक पहुंचता है? यदि कोई कोड नहीं है तो यह ठीक बनाता है। –

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