xcode 5.1: libCordova.a आर्किटेक्चर की समस्याएं


81

कल (३/१०/१४) जब आईओएस 14.१ जारी किया गया तो मुझे भी एक्सकोड ५.१ में अपग्रेड किया गया और पाया गया कि मेरा फोनगैप / कॉर्डोवा प्रोजेक्ट अब मेरे आईफोन ५ एस के लिए संकलित नहीं होगा। मैंने कॉर्डोवा को हालिया रिलीज़: v 3.4.0-0.1.3 में भी अपग्रेड किया।

मैंने SO पर कई अलग-अलग समाधानों को पढ़ा है जो इतने सक्रिय आर्किटेक्चर से संबंधित हैं और केवल सक्रिय आर्किटेक्चर का निर्माण करते हैं, और उनमें से कोई भी काम नहीं करता है। तो यहां मैंने जो कोशिश की है और मुझे जो त्रुटियां मिली हैं। शुरू में मुझे त्रुटि मिली:

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

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

file was built for archive which is not the architecture being linked (armv7): 
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7

केवल "नहीं" के लिए सक्रिय आर्किटेक्चर सेट करें , त्रुटि फिर से हो जाती है:

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

मुझे यकीन नहीं है कि क्या और कोशिश करनी है। परियोजना की वास्तुकला सेटिंग्स में केवल कुंजी "बेस एसडीके" शामिल है जो कि आईओएस 7.1 पर सेट है। प्रोजेक्ट के लक्ष्य में आर्किटेक्चर सेटिंग्स नहीं हैं। वैसे भी मैं काफी हद तक समस्या एम्बेडेड कॉर्डोवालिब उप-परियोजना के साथ है। मैं इस उपकरण को सफलतापूर्वक अपने डिवाइस पर संकलित करने के लिए क्या कर सकता हूं?

अपडेट: अपाचे की जीरा पर एक ही मुद्दा: https://issues.apache.org/jira/browse/CB-6223


2
मुझे भी ठीक यही समस्या है। iOS 7.1 और Xcode 5.1 कुछ समय के लिए डेवलपर्स के लिए उपलब्ध हैं, इसलिए यह निराशाजनक है कि कॉर्डोवा टीम ने कम से कम इस बारे में चेतावनी जारी नहीं की थी कि वे रिलीज़ होने से पहले।
एडी

हाँ। मैंने हाल ही में स्थापित कॉर्डोवा के साथ एक नया 'हैलो वर्ल्ड' कॉर्डोवा प्रोजेक्ट बनाया और यह सफलतापूर्वक संकलित नहीं होगा।
अकार्बनिक

क्या iOS 7.0 SDK को पकड़ना और पुन: स्थापित करना संभव है?
Ade

मुझे इन सेटिंग्स का उपयोग करने के लिए संकलन करने के लिए मिला, लेकिन जब मैं संग्रह को मान्य करता हूं तो मुझे त्रुटि मिलती है: ** यह बंडल अमान्य है। जिन ऐप्स में armv7 आर्किटेक्चर शामिल है, उन्हें armv7 आर्किटेक्चर शामिल करना आवश्यक है। जो अजीब है क्योंकि ऐसा लगता है कि मैंने दोनों को शामिल किया है।
Ade

3
Apache Cordova JIRA मुद्दे में चरणों को ठीक करें: issues.apache.org/jira/browse/CB-6223
शाज़्रोन

जवाबों:


86

@ शाज्रॉन ने अपाचे JIRA पर फिक्स पोस्ट किया - वह ध्यान देता है कि कॉर्डोवा 3.5 के हिस्से के रूप में फिक्स जारी किया जाएगा:

  1. अपना प्रोजेक्ट आइकन चुनें
  2. बिल्ड सेटिंग्स चुनें।
  3. "आर्किटेक्चर" के लिए, $ ARCHS_STANDARD का चयन करें - मानक आर्किटेक्चर (armv7, armv7s, arm64)
  4. "मान्य आर्किटेक्चर" के लिए, "arm64" जोड़ें
  5. अपना CordovaLib.xcodeproj आइकन चुनें
  6. प्रोजेक्ट के लिए सेटिंग बनाएँ (लक्ष्य नहीं), सशर्त आर्किटेक्चर सेटिंग्स हटाएं (ऋण चिह्न देखने के लिए हॉवर)
  7. "आर्किटेक्चर" के लिए, $ ARCHS_STANDARD का चयन करें - मानक आर्किटेक्चर (armv7, armv7s, arm64)
  8. "मान्य आर्किटेक्चर" के लिए, "arm64" जोड़ें
  9. गोटो 6, लेकिन अब इसे "लक्ष्य" के लिए करें

यहाँ इस समस्या के शाज़्रोन के पूर्ण लिखने का लिंक दिया गया है: http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/

यह अब जारी किया गया है और क्या करना है इसका लघु संस्करण:

कॉर्डोवा सीएलआई 3.4.1-0.1.0 बाहर है, जिसमें कॉर्डोवा आईओएस 3.4.1 शामिल है जो इस ब्लॉग पोस्ट में उल्लिखित सभी सुधारों को शामिल करता है। अपने कॉर्डोवा सीएलआई को अपडेट करें, और यदि आपके पास एक मौजूदा प्रोजेक्ट है, तो "कॉर्डोवा प्लेटफॉर्म अपडेट आईओएस" करें।


10
अति उत्कृष्ट। चरण # 6 के लिए मैं यह सोचकर सही हूं कि मुझे इन सभी को हटाना चाहिए: SCREENSHOT ?
Ade

1
यह पहली बार में ठीक लगता है : ऐप अभिलेखागार, और मान्य करता है। लेकिन जब एक तदर्थ वितरण के रूप में निर्यात किया जाता है तो यह iPhone 5S पर नहीं चलेगा।
Ade

7
हां, इस उत्तर को ऐप को 5S पर संकलित करने और स्थापित करने के लिए प्राप्त होता है, लेकिन जब इसे चलाना शुरू होता है तो यह एक बड़ी त्रुटि फेंकता है और क्रैश हो जाता है (या रुक जाता है यदि आप अपने डिवाइस को अपने मैक पर चला रहे हैं जबकि Xcode चला रहे हैं)।
जफ डेमपसी

5
यहां @Shazron पोस्ट का लिंक दिया गया है। इसमें 3 मुद्दे शामिल हैं: shazronatadobe.wordpress.com/2014/03/12/…
stefbach

मैं पुष्टि करता हूं कि यह मेरे लिए काम करता है। बिंदु 9 को मत भूलना जो लक्ष्य 'कॉर्डोवा लीब' के लिए किसी भी सशर्त वास्तुकला सेटिंग्स को हटाने के लिए है। आपके पास प्रोजेक्ट 'कॉर्डोवालिब' और लक्ष्य कॉर्डोवालिब दोनों के लिए होना चाहिए। आर्किटेक्चर सेटिंग्स को देखना चाहिए: - डीबग: स्टैंडर्ड आर्किटेक्चर (...) - रिलीज़: स्टैंडर्ड आर्किटेक्चर (...)
स्टेफबैच

11

एक और दृष्टिकोण जो काम करता है:

  1. प्रोजेक्ट नेविगेटर (कॉर्डोवा.लिब सबप्रोजेक्ट नहीं) के शीर्ष पर अपनी परियोजना पर क्लिक करें।
  2. संपादक फलक में, प्रोजेक्ट चुनें (लक्ष्य नहीं), बिल्ड सेटिंग्स संपादक टैब चुनें, और ऑल और लेवल बटन पर क्लिक करें।
  3. यदि आवश्यक हो तो आर्किटेक्चर समूह का विस्तार करें और इसके तहत आर्किटेक्चर पंक्ति ढूंढें।
  4. आर्किटेक्चर पंक्ति में पहला (सुलझा हुआ) और तीसरा (iOS डिफ़ॉल्ट) कॉलम मानक कहेंगे; दूसरा (प्रोजेक्ट) कॉलम खाली होगा।
  5. एक बॉक्स लाने के लिए खाली दूसरे कॉलम पर क्लिक करें जिसमें एक लाइन होगी, "$ (ARCHS_STANDARD)"।
  6. उस पंक्ति को संपादन योग्य बनाने के लिए उस पर डबल-क्लिक करें, फिर उसे "$ (ARCHS_STANDARD_32_BIT)" पढ़ने के लिए बदलें।
  7. अपने परिवर्तन की पुष्टि करने के लिए बॉक्स के बाहर क्लिक करें। अब पहले और दूसरे बक्से में सिर्फ एक $ होगा।
  8. अब आपको निर्माण करने में सक्षम होना चाहिए।

10

डाउनग्रेड Xcode 5.1 से 5.0.2 ने मेरे लिए काम किया, मैं फिक्स के साथ एक आधिकारिक कॉर्डोवा 3.5 रिलीज के लिए इंतजार नहीं कर सकता था।

आप यहां पिछले संस्करण की एक प्रति प्राप्त कर सकते हैं: https://developer.apple.com/downloads/index.action


3
यह काम करता है - एक ही कैविएट है जिसे आप आईओएस 7.1 पर चलने वाले आईफोन पर सीधे एक्सकोड में परीक्षण नहीं कर सकते हैं। यह वह जगह है जहाँ सिम्युलेटर काम में आता है। संकलित एप्लिकेशन कर सकते हैं आईओएस 7.1 (दोनों एक iPhone 5 और 5 एस पर इस बात की पुष्टि) इतने पर चलाने Cordova 3.5 तक पदावनति जारी किया गया है सबसे अच्छा विकल्प लगता है।
एडी

यह मेरे लिए सबसे अच्छा काम करता है अभी भी। Xcode 5.02 को डाउनलोड किया और इसे कॉपी किया (आवेदनों में इसका नामकरण XCode_502 पहले) ने मुझे Xcode 5.1 के बगल में चलाने के लिए सक्षम किया।
EEKay

Ade I डाउनग्रेड 5.0.2 हो गया है और आईओएस 5 और आईपैड 2 दोनों पर अपने ऐप को iOS 7.1 के साथ टेस्ट कर रहा है, बिना किसी समस्या के, मैंने ऐप को आईट्यून्स कनेक्ट के साथ बिना किसी समस्या के भी सबमिट कर दिया है।
एलेक्सलोपज़िट

8

उन्होंने सिर्फ एक नया संस्करण 3.4.1 जारी किया जो इस मुद्दे को संबोधित करता है।

इसलिए मैं TAG 3.4.1 को इंगित करने के लिए एक एकल फ़ाइल अपडेट करता हूं:

/usr/local/lib/node_modules/cordova/platforms.js

लाइन 24 से:

version: '3.4.0'

सेवा:

version: '3.4.1'

फिर आप अपने प्रोजेक्ट में iOS फोल्डर को हटा दें और चलाएं:

cordova platform add ios

यह सभी पैच के साथ 3.4.1 पर आधारित नया टेम्पलेट डाउनलोड करेगा।


@JPRichardson धन्यवाद, अब मैं उन्नयन
करूंगा

1
npm अपडेट कॉर्डोवा -g, फिर कॉर्डोवा प्लेटफॉर्म अपडेट ios
sepulturkey

5

इस वीडियो के निर्देशों का पालन करें: https://www.youtube.com/watch?v=EIkJAKcz8DE

बस अपनी परियोजनाओं में वैध आर्किटेक्चर जोड़ें और कॉर्डोवा की परियोजना के सभी सशर्त वास्तुकला को हटा दें।


आपने अभी-अभी मुझे बहुत सिरदर्द से बचाया है। इस वीडियो ने उस समस्या को ठीक कर दिया, जिससे मैं कुछ घंटों से जूझ रहा था।
बुल्ले

इसने मेरे लिए काम किया। वीडियो बनाने के लिए धन्यवाद - यह बहुत स्पष्ट है।
जॉन क्यू

3

मैं अपने ऐप को XCode 5.1 में बनाने के लिए पहले कॉर्डोवालिब परियोजना को XCode के भीतर से अलग करने और फिर अपनी परियोजना के निर्माण में सक्षम था।


यह मेरे लिए भी काम किया। बिल्कुल सही, चूंकि Xcode को अपग्रेड करना (और iOS7.1 उपकरणों पर परीक्षण करने में सक्षम नहीं होना) मेरे लिए कोई विकल्प नहीं है। धन्यवाद!
एडम टटल

2

आपको बस अपने स्टेटमेंट और बिल्डिंग कॉर्डोवा प्रोजेक्ट पर, हर स्टेटमेंट और बिल्डिंग सेटिंग पर arm64 आर्किटेक्चर जोड़ना होगा।

अपने प्रोजेक्ट पर:

  • आर्किटेक्चर
  • मान्य वास्तुदोष

कॉर्डोवा पर:

  • आर्किटेक्चर
  • डिबग
  • रिहाई
  • कोई भी आईओएस एस.डी.के.

और सबसे महत्वपूर्ण

कॉर्डोवा में -विशिष्ट आर्किटेक्चर सेटिंग्स का निर्माण करते हैं

यह विन्यास चेतावनी का एक बहुत उत्पन्न करता है, लेकिन सिर्फ बदल रहा है "% d" के लिए "% ld" सभी लाइनों है कि चेतावनी का कहना है पर।


1

एक्सकोड आइकन को पकड़ो और इसे बिन में खींचें!

यहां जाएं https://developer.apple.com/downloads/index.action?name=Xcode और 5.0.2 डाउनलोड कर इंस्टॉल करें।

स्थापित करने के बाद, xcode चलाएं, फिर टर्मिनल से एमुलेटर का प्रयास करें।

मेरे लिए काम किया, हालांकि कष्टप्रद!

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