2012-10-03 14 views
7

इसलिए मैंने हाल ही में एक्सकोड को 4.5 में अपडेट किया है और आईओएस 6 फोन पर अपना हाथ पाने में सक्षम था। मैं सिमुलेटर ठीक (4.3/5.1/6.0) पर परीक्षण कर रहा था, लेकिन जब मैंने वास्तविक आईओएस 6 फोन पर निर्माण करने का फैसला किया तो उसने मुझे यह त्रुटि दी।एक्सकोड आईओएस 6 संकलन त्रुटियां: कोई आर्किटेक्चर

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv6 armv7 i386). 

मैं कुछ देखने किया था और निर्माण सेटिंग में जाकर वैध आर्किटेक्चर को बदलने के लिए armv7s शामिल करने के लिए द्वारा उसे ठीक किया और क्या यह करने के लिए लगता है रहा था।

हालांकि कहा कि मैं देख स्थिर पुस्तकालय ढांचे सभी समस्याओं के बाद से यह IOS 6 का समर्थन नहीं करता खड़ी कर रहा है यह मेरे लिए लगता है इस त्रुटि

ld: file is universal (3 slices) but does not contain a(n) armv7s slice: some static library framework for architecture armv7s 

कुछ करने के बाद मिला है और मैं बहुत आशावादी नहीं कर रहा हूँ द्वारा

कि यह आसानी से तय किया जा सकता है। हालांकि, मैं नेट पर अपनी सटीक स्थिति ठीक नहीं कर सका क्योंकि मुझे उम्मीद है कि कोई ऐसा व्यक्ति है जो मुझसे बेहतर जानता है और मेरी मदद कर सकता है। धन्यवाद

नोट: है कि स्थिर पुस्तकालय कोड में हर जगह है, को दूर करने में यह काफी एक विकल्प नहीं

उत्तर

2

Xcode 4.5 अब ARMv6 का समर्थन नहीं करता है, तो आप इस आर्किटेक्चर को दूर करने की जरूरत है।

जैसा कि आप पहले ही पाए गए हैं, आपके द्वारा उपयोग की जाने वाली लाइब्रेरी armv7 का समर्थन नहीं करती है, जो अब आवश्यक है।

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

+0

हां यह सिर्फ स्थिर पुस्तकालय की तरह दिखने की आवश्यकता है, मैंने क्रिस के सुझाव की कोशिश की लेकिन यह काम नहीं किया। – user1289479

5

है आदेश बनाने के लिए, सभी स्थैतिक पुस्तकालयों के खिलाफ एक आवेदन लिंक कोड आवेदन के आर्किटेक्चर के सभी के लिए उत्पन्न करना होगा ।

ऐसा लगता है कि एक्सकोड 4.5 ने armv7s कोड बनाने के लिए अपनी प्रोजेक्ट को अपडेट किया है, लेकिन यह एप्लिकेशन के सक्रिय आर्किटेक्चर में armv7s जोड़ने के लिए उपेक्षित है।

एक बार जब आप इसे ठीक कर लेंगे, तो ऐसा लगता है कि समस्या यह है कि स्थिर पुस्तकालय armv7s कोड का उत्पादन नहीं कर रहा है, लेकिन आपका एप्लिकेशन armv7s के निर्माण के लिए प्रयास कर रहा है।

यदि समस्या है, तो इसे ठीक करने के दो तरीके हैं। या तो आप अपने आवेदन केवल, ARMv7 कोड (armv7s कोड के लिए की जरूरत को हटाने) उत्पन्न करने के लिए, जिसके लिए आप अपने एप्लिकेशन का लक्ष्य सेटिंग में बदलाव करने की आवश्यकता होगी चाहते हैं:

enter image description here

... या आप अपने आवेदन चाहते हैं और सभी लिंक किए स्थिर पुस्तकालयों निर्माण सेटिंग्स कि इस तरह दिखेगा के लिए:

enter image description here

ARMv7 कोड 3GS ऊपर की तरफ से कुछ भी पर नहीं चलेंगे। armv7s कोड केवल आईफोन 5 पर चलाएगा, और थोड़ा तेज़ होगा।

तो यदि आपके पास परीक्षण करने के लिए आईफोन 5 तक पहुंच है, और आपके पास स्थिर लाइब्रेरी का स्रोत कोड है तो दूसरा विकल्प शायद सबसे अच्छा है। अन्यथा, यह मानते हुए कि आपकी लाइब्रेरी कम से कम armv7 कोड उत्पन्न कर रही है, तब तक जब तक आपका एप्लिकेशन armv7s बनाने की कोशिश नहीं कर रहा है, आपको भी ठीक होना चाहिए।

यदि लाइब्रेरी केवल armv6 कोड बना रही है, जो xCode 4.5 द्वारा समर्थित नहीं है, तो आपको कम से कम armv7 कोड बनाने के लिए अपनी बिल्ड सेटिंग्स को बदलने की आवश्यकता होगी।

+0

खैर मैं वास्तव में armv7s वास्तुकला को दूर नहीं कर सकते, क्योंकि यह मुझे कोई वास्तुकला त्रुटि फिर से दे देंगे, लेकिन मैं कैसे यह स्थिर पुस्तकालय के लिए जोड़ सकता हूँ? – user1289479

+0

क्षमा करें, स्पष्ट होना चाहिए था। संपादित करेंगे –

0

armv7s निकालें और ARMv7 जोड़ने (और/या ARMv6)

+0

मान्य वास्तुकला: (पहले) armv6 armv7 i386 (बाद) armv6 armv7 i386 armv7s मुझे कोई आर्किटेक्चर संकलन त्रुटि से छुटकारा पाने के लिए इसे जोड़ना था – user1289479

+0

क्या आप बेस एसडीके को आईओएस 5 में बदल सकते हैं और इसे इस तरह चला सकते हैं? मेरे सिर के ऊपर से याद नहीं कर सकता। – Vinnie

10

आप "केवल सक्रिय आर्किटेक्चर बनाएं" YES -> NO को बदलने का प्रयास कर सकते हैं। मेरे लिए अच्छा काम करता है।

1

मुझे भी इसी तरह की समस्या है। लक्ष्य परियोजना की बिल्ड सेटिंग्स में 'सक्रिय आर्किटेक्चर केवल' को 'नहीं' में बदलकर हल किया गया।

enter image description here

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