के लिए बिल्डिंग मैंने कस्टम ऑब्जेक्टिव-सी फ्रेमवर्क बनाया है। मैं इसे किसी दिए गए आईओएस प्रोजेक्ट में आयात करना चाहता हूं और आईओएस सिम्युलेटर और एक वास्तविक डिवाइस दोनों पर इसकी उपलब्ध कार्यक्षमता का उपयोग करना चाहता हूं। ढांचे को आयात करने के लिए, मैं इसे बिल्ड चरणों> लाइब्रेरी के साथ लिंक बाइनरी ऐप के लक्ष्य में सेटिंग का उपयोग करके लिंक करता हूं। मैं तो इस कथन से मेरी वर्गों में से एक में आयात करने में सक्षम हूँ:एक्सकोड 6 त्रुटि - "अनुपलब्ध आवश्यक आर्किटेक्चर i386" जब आईओएस सिम्युलेटर
#import <CustomFramework/CustomFramework.h>
मैं अपने ढांचे की कक्षाओं ठीक दृष्टांत सकता है, लेकिन जब मैं एक डिवाइस पर अपने प्रोजेक्ट को चलाने के लिए प्रयास करते हैं, मैं निम्नलिखित त्रुटि मिलती है संदेश:
dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework
Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp
Reason: image not found
और अगर मैं सिम्युलेटर पर इसे चलाने के लिए प्रयास करते हैं, मुझे कोई दूसरी त्रुटि संदेश मिलता है:
ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CustomFramework", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
यह तब होता है जब मैं ढांचे से एक वर्ग का दृष्टांत। अगर मैं ढांचे को आयात करता हूं लेकिन वास्तव में इसका उपयोग नहीं करता, तो मेरा ऐप सफलतापूर्वक बनाता है। जब भी मैं कुछ कारणों से ढांचे से कक्षा को तुरंत चालू करता हूं तो यह सिर्फ त्रुटियां होती है।
डिवाइस पर ऐप बनाने के लिए, मैंने this SO उत्तर का पालन किया। ढांचे को जोड़ने के बजाय, मैंने लक्ष्य की चरण सेटिंग में एक नई प्रतिलिपि फ़ाइलें चरण जोड़ा, गंतव्य को फ्रेमवर्क पर सेट किया, और अपना ढांचा जोड़ा।
यह बहुत अच्छा काम करता है; हालांकि, मैं आईओएस सिम्युलेटर पर भी अपने ऐप का परीक्षण करना चाहता हूं। जब मैं सिम्युलेटर पर अपना ऐप चलाने की कोशिश करता हूं, तो मुझे अभी भी "अनुपलब्ध आवश्यक आर्किटेक्चर i386" त्रुटि मिलती है। मैंने केवल हर संबंधित एसओ विषय पर प्रस्तावित समाधानों का प्रयास किया है, और कुछ भी इस मुद्दे को हल करने में मेरी मदद नहीं कर पाया है।
कृपया ध्यान दें कि मैं अपने कस्टम फ्रेमवर्क को एक नए एक्सकोड प्रोजेक्ट में उपयोग करने का प्रयास कर रहा हूं, इसलिए ऐप/बिल्ड सेटिंग्स में से कोई भी उनके डिफ़ॉल्ट से बदल नहीं गया है।
मैं इस त्रुटि को कैसे ठीक कर सकता हूं ताकि मैं अपने ऐप को आईओएस सिम्युलेटर और डिवाइस में शामिल मेरे ढांचे के साथ एक डिवाइस पर चला सकूं? किसी भी जानकारी की काफी सराहना की जाएगी!
उत्तर के लिए धन्यवाद! फिर भी यह भयानक है कि 2015 तक, हमें अभी भी एक सभ्य रूपरेखा प्राप्त करने के लिए मैन्युअल भवन का सहारा लेना है (ट्यूटोरियल की तरह है, 10 पेज लंबा ?!)। आप पर शर्म आती है, ऐप्पल! – Rick77
@ रिक 77 मदद करने के लिए खुशी! मैं पूरी तरह से सहमत।मैं विंडोज और विंडोज फोन के लिए ऐप भी विकसित करता हूं, और मुझे उन प्लेटफॉर्म पर इसके बारे में भी सोचना नहीं पड़ता है। – Alexander
@Alexander मेरा ढांचा आईओएस सिम्युलेटर के आर्किटेक्चर के लिए संकलित नहीं किया गया था। यह केवल डिवाइस का समर्थन करता है, सिम्युलेटर में अपना ढांचा कैसे काम करता है। मैं फ्रेमवर्क का उपयोग कर रहा हूं। –
Arun