2014-09-25 15 views
5

पर ऐप्पल मैक-ओ लिंकर त्रुटि मैंने अपने एक्सकोड को 6.0.1 पर अपडेट किया है इस अद्यतन से पहले, मैं अपने प्रोजेक्ट को सिम्युलेटर और मेरे डिवाइस में बनाने में सक्षम था। लेकिन अब, यह मुझे दे रहा है ऐप्पल मैक-ओ लिंकर त्रुटिएक्सकोड 6.0.1

मैंने बहुत सर्फ किया। मैंने DerivedData फ़ोल्डर को हटा दिया है। अभी भी समस्या है।

मैं एक फोनगैप ऐप बना रहा हूं। क्रिप्या मेरि सहायता करे।

Undefined symbols for architecture arm64: 
    "_OBJC_CLASS_$_CDVWebViewDelegate", referenced from: 
     objc-class-ref in CDVInAppBrowser.o 
    "_OBJC_CLASS_$_CDVInvokedUrlCommand", referenced from: 
     objc-class-ref in CDVContacts.o 
     objc-class-ref in CDVFile.o 
    "_OBJC_METACLASS_$_CDVViewController", referenced from: 
     _OBJC_METACLASS_$_MainViewController in MainViewController.o 
    "_OBJC_CLASS_$_CDVPlugin", referenced from: 
     _OBJC_CLASS_$_CDVLogger in CDVLogger.o 
     _OBJC_CLASS_$_CDVContacts in CDVContacts.o 
     _OBJC_CLASS_$_CDVDevice in CDVDevice.o 
     _OBJC_CLASS_$_CDVNotification in CDVNotification.o 
     _OBJC_CLASS_$_CDVFile in CDVFile.o 
     _OBJC_CLASS_$_CDVFileTransfer in CDVFileTransfer.o 
     _OBJC_CLASS_$_CDVInAppBrowser in CDVInAppBrowser.o 
     ... 
    "_OBJC_METACLASS_$_CDVPlugin", referenced from: 
     _OBJC_METACLASS_$_CDVLogger in CDVLogger.o 
     _OBJC_METACLASS_$_CDVContacts in CDVContacts.o 
     _OBJC_METACLASS_$_CDVDevice in CDVDevice.o 
     _OBJC_METACLASS_$_CDVNotification in CDVNotification.o 
     _OBJC_METACLASS_$_CDVFile in CDVFile.o 
     _OBJC_METACLASS_$_CDVFileTransfer in CDVFileTransfer.o 
     _OBJC_METACLASS_$_CDVInAppBrowser in CDVInAppBrowser.o 
     ... 
    "_OBJC_CLASS_$_CDVViewController", referenced from: 
     _OBJC_CLASS_$_MainViewController in MainViewController.o 
     objc-class-ref in CDVDevice.o 
     objc-class-ref in CDVFile.o 
    "_CDVLocalNotification", referenced from: 
     -[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o 
    "_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from: 
     _OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o 
    "_OBJC_CLASS_$_CDVPluginResult", referenced from: 
     objc-class-ref in CDVContacts.o 
     objc-class-ref in CDVDevice.o 
     objc-class-ref in CDVNotification.o 
     objc-class-ref in CDVFile.o 
     objc-class-ref in CDVLocalFilesystem.o 
     objc-class-ref in CDVAssetLibraryFilesystem.o 
     objc-class-ref in CDVFileTransfer.o 
     ... 
    "_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from: 
     _OBJC_CLASS_$_MainCommandDelegate in MainViewController.o 
    "_OBJC_CLASS_$_CDVUserAgentUtil", referenced from: 
     objc-class-ref in CDVInAppBrowser.o 
    "_OBJC_CLASS_$_CDVCommandQueue", referenced from: 
     _OBJC_CLASS_$_MainCommandQueue in MainViewController.o 
    "_OBJC_METACLASS_$_CDVCommandQueue", referenced from: 
     _OBJC_METACLASS_$_MainCommandQueue in MainViewController.o 
    "_CDVPluginHandleOpenURLNotification", referenced from: 
     -[AppDelegate application:handleOpenURL:] in AppDelegate.o 
     -[CDVInAppBrowser openInSystem:] in CDVInAppBrowser.o 
ld: symbol(s) not found for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

आपको वास्तविक लिंकर त्रुटि संदेश पोस्ट करने की आवश्यकता है। –

+0

@PaulR संपादन देखें। क्या यह पर्याप्त है? –

+0

इससे मदद मिलती है - ऐसा लगता है कि आप कॉर्डोवा ढांचे से सामान का एक गुच्छा खो रहे हैं? –

उत्तर

6

समस्याओं इस तरह की आम तौर पर पाए जाते हैं अपने Xcode अपडेट करते समय, लेकिन आप उपयोग कर रहे हैं किसी भी तीसरे पक्ष उपकरण इस वास्तुकला armv64 साथ अद्यतन नहीं किया जा सकता है।

तो एक्सकोड से अपने प्रोजेक्ट नेविगेटर पर क्लिक करें।

अपनी परियोजना से Targets पर क्लिक करें और इससे BuildSettings पर क्लिक करें।

इसमें Valid Architectures खोजें।

उस पर बस डबल क्लिक करें और उस से armv64 हटा दें।

सुनिश्चित करें कि केवल armv7 और armv7s है।

यदि यह काम नहीं करता है तो armv7s को हटाने का प्रयास करें।

कृपया जांचें कि आपके सभी ढांचे ठीक से जुड़े हुए हैं और संदर्भित हैं। उस तीसरे पक्ष के उपकरण के लिए फ्रेमवर्क को फिर से निकालने और जोड़ने का प्रयास करें।

कृपया सभी ढांचे को सही ढंग से संदर्भित करें जांचें।

मेरे मामले में यह मेरे लिए काम करता था।

अपनी परियोजना को साफ और बनाएं। इसे अभी ठीक काम करना चाहिए।

उम्मीद है कि यह आपकी मदद करता है।

+0

के लिए खेद है कि कैसे ढांचे को ठीक से जोड़ा गया है या नहीं? –

+0

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

+0

ऐसा लगता है कि काम कर रहा है। मैंने हटा दिया है और फिर मेरे प्लगइन जोड़े हैं। यह 15 से 9 त्रुटियों से कम हो गया। मैं एक्सकोड में विशेषज्ञ नहीं हूं। कृपया मुझे बताएं कि तीसरे पक्ष के ढांचे का संदर्भ कैसे लें। कहां और कैसे? –

0

जब मैंने कुछ गिट प्रोजेक्ट आयात किया, तो मुझे एक ही समस्या मिली, अंत में विकास लक्ष्य को बदलने में समाधान मिला।

प्रोजेक्ट-> सामान्य-> विकास जानकारी और परिनियोजन लक्ष्य बदलें।

+0

क्या यह ** तैनाती लक्ष्य ** है? –

+0

हां, मुझे सही करने के लिए धन्यवाद। यूट्यूब लिंक के लिए – adnan

1

आप 64 बिट समर्थन को हटा सकते हैं क्योंकि मंथन ने कहा, लेकिन ऐप स्टोर अनुपालन (starting 1 February 2015) के लिए आपको इसकी आवश्यकता है। मैं सुझाव देता हूं कि आपके सभी फ्रेमवर्क इत्यादि को उन संस्करणों में अपडेट करने की प्रक्रिया शुरू करें जो 64 बिट का समर्थन करते हैं।

Cocoapods का उपयोग करके मैंने जो देखा और अनुभव किया है, उसका पालन करने का सबसे आसान मार्ग है क्योंकि यह आपके ढांचे के संस्करण को नियंत्रित करना और अपडेट करना और साथ ही साथ अन्य संस्करणों में डाउनग्रेड करना आसान है। मैं सुझाव दूंगा कि ढांचे के आपके वर्तमान संस्करण क्या हैं और धीरे-धीरे उन्हें वहां से अपडेट कर रहे हैं, जब तक आपको 64 बिट समर्थन वाला संस्करण नहीं मिलता जो आपके वर्तमान निर्माण के साथ काम करता है।

एक अन्य विधि है कि मैं पाया है जो आम तौर पर ठीक करता मच-ओ त्रुटियों निम्नलिखित हैं:

  • सुनिश्चित करें कि Target => Architectures => Build Active Architectures नहीं पर सेट है।
  • सुनिश्चित करें कि Target => Search Paths => Framework search paths, और Library search paths में उनकी पहली प्रविष्टि के रूप में $(inherited) है।

64 बिट में कनवर्ट करना वास्तव में एक कठिन काम हो सकता है, लेकिन शायद इसे लंबे समय तक लायक होगा।

0

मैंने पूरे एक्सकोड 6 को अनइंस्टॉल किया। मैंने अपने मैक में फोनगैप अपडेट किया और इसे फिर से इंस्टॉल किया। एक नया फोनगैप प्रोजेक्ट बनाया गया। नई परियोजना में कोड (www फ़ोल्डर) की प्रतिलिपि बनाई। इसे बनाएं। देरी जबाब

4

मैं समाधान के लिए और यह XCode में ठीक काम कर रहा है 6.

क्षमा करें, एक बंदर पैच, परियोजना की अपनी एक सुधार नहीं है। क्या हम अपने करने के लिए आवेदन के द्वारा समर्थित आर्किटेक्चर को बदलने की जरूरत:

  1. परियोजना पर जाएं -> सेटिंग्स बनाएँ (देखने के लिए "सभी" की जाँच करें) -> आर्किटेक्चर -> स्टैंडर्ड आर्किटेक्चर (ARMv7 armv7s arm64)
  2. जाओ कॉर्डोबा lib परियोजना के लिए -> सेटिंग्स बनाएँ (देखने के लिए "सभी" की जाँच करें) -> आर्किटेक्चर:
    • ओपन डीबग पेड़ और रिलीज पेड़
    • ओपन उन्हें अंदर सभी तत्वों को हटाने और करना वही
  3. जाओ कॉर्डोबा lib परियोजना (चुनिंदा लक्ष्य इस बार) करने के लिए और कदम 2

विस्तृत जानकारी के लिए youtube video देखें का भी ऐसा ही।

+0

कुडोस! यह एकमात्र उत्तर है जो मेरे लिए काम करता है। धन्यवाद – fruqi

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