"चेतावनी: iPhone ऐप्स में एक armv6 आर्किटेक्चर शामिल होना चाहिए" यहां तक ​​कि बिल्ड कॉन्फिगर सेट के साथ


332

यह कुछ समय हो गया है क्योंकि मुझे प्रोजेक्ट बिल्ड सेटिंग्स को समायोजित करना पड़ा है। हाल के एसडीके में अपग्रेड करने के बाद मुझे अपने तदर्थ वितरण कॉन्फ़िगरेशन को बनाने में परेशानी हो रही है।

बिल्ड इस चेतावनी और त्रुटि उत्पन्न करता है:

चेतावनी: iPhone ऐप्स में एक armv6 आर्किटेक्चर (वर्तमान ARCHS = "armv7") शामिल होना चाहिए

iPhone / iPod Touch: एप्लिकेशन निष्पादन योग्य एक आवश्यक आर्किटेक्चर गायब है। निम्न वास्तुकला में से कम से कम एक मौजूद होना चाहिए: armv6 (-19033)

हालांकि मेरे प्रोजेक्ट में मुझे लगा कि मैंने सही तरीके से सेट किया है:

  • आर्किटेक्चर है: स्टैंडर्ड (armv6 armv7)
  • बेस एसडीके: नवीनतम आईओएस (वर्तमान में आईओएस 4.2 पर सेट)
  • मान्य आर्किटेक्चर: armv6 armv7

वैकल्पिक शब्द

मैंने सभी लक्ष्यों को साफ कर दिया है।

मैं किसी भी सुझाव की सराहना करता हूं।


मेरा एक पुराना ऐप था जिसे एक अपडेट मिला, और यह iOS परिनियोजन लक्ष्य <4.3 के लिए भी वही त्रुटि फेंकता है! तो मेरा समाधान armv6 के सभी संदर्भों को हटाने और इसे> = 4.3 पर सेट करना था। इसने काम कर दिया।
हेनरिक एरलैंडसन

और अभी-अभी मैंने एक और पुराने ऐप के लिए भी ऐसा ही प्रयास किया, जो रिहल मिला और यह काम नहीं किया ... XCode 5 अंक, यह बिल्ड सेटिंग्स को गलत करता है, ऐसा लगता है।
हेनरिक एरलैंडसन

जवाबों:


418

यदि Xcode 4.2 या उच्चतर का उपयोग कर रहे हैं, तो निम्न प्रयास करें:

  1. लक्ष्य के बाद अपना प्रोजेक्ट नाम (बाएं कॉलम में) पर क्लिक करें:

    यहां छवि विवरण दर्ज करें

  2. 'सेटिंग बनाएँ' टैब पर क्लिक करें (दाहिने कॉलम में):

    यहां छवि विवरण दर्ज करें

  3. 'आर्किटेक्चर' के अंतर्गत 'रिलीज़' या 'वितरण' पंक्ति पर क्लिक करें, और 'अन्य ...' चुनें:

    यहां छवि विवरण दर्ज करें

  4. दिखाई देने वाली आबादी में '$ (ARCHS_STANDARD_32_BIT) नाम की हाइलाइट की गई पंक्ति पर डबल क्लिक करें और इसे' armv6 'लिखकर बदलें। फिर पॉपओवर के निचले भाग में प्लस बटन के साथ एक नई पंक्ति जोड़ें, और 'armv7' टाइप करें, फिर Done पर क्लिक करें:

    यहां छवि विवरण दर्ज करें

अपडेट: आपको iPhone 5 को भी लक्षित करने के लिए armv7s जोड़ना चाहिए। (और armv6 ड्रॉप अगर Xcode 4.5 या उच्चतर के साथ निर्माण, जो अब armv6 का समर्थन नहीं करता है।)

बस। अब आपको त्रुटियों को उत्पन्न किए बिना निर्माण / संग्रह करने में सक्षम होना चाहिए।

यदि यह अभी भी काम नहीं करता है, तो justinxreese के इस उत्तर को देखें , जो आपकी जानकारी में "आवश्यक डिवाइस क्षमताओं" के तहत armv6 और armv7 के लिए प्रविष्टियों को जोड़ने का सुझाव देता है।


3
हां, ऐसा लगता है कि Apple ARM6 से दूर जा रहे हैं, इसलिए यह Xcode 4.2 के लिए एक आवश्यक कदम प्रतीत होता है। यह अजीब है कि सबमिशन प्रक्रिया के लिए अभी भी ARM6 बिल्ड की आवश्यकता है, भले ही 4.2 अब सार्वजनिक हो ...
जसारीन

7
मेरे पास वास्तुकला के तहत वितरण पंक्ति नहीं है, इसके बजाय मेरे पास "रिलीज़" पंक्ति है। पता नहीं कैसे करना है
OMGPOP

2
@ LetSpotIt बस अपनी रिलीज़ पंक्ति में armv6 और armv7 जोड़ें। मेरे स्क्रीनशॉट में प्रोजेक्ट को Xcode के पुराने संस्करण से आयात किया गया था, इसलिए विभिन्न आर्किटेक्चर के नाम।
निक

2
धन्यवाद निक। इसके अलावा, Xcode 4.2 में बनाई गई नई परियोजनाओं के लिए उनकी जानकारी की आवश्यकता हो सकती है। armv6 उपकरणों का समर्थन करने के लिए फ़ाइल को बदल दिया गया है। नीचे मेरा अतिरिक्त जवाब देखें।
मैटिग

1
@ टिप के लिए धन्यवाद, और मेरे लिए मुझे "लक्ष्य" के बजाय "प्रोजेक्ट" चुनना था। "लक्ष्य" निर्माण सेटिंग्स से चयन मेरे लिए काम नहीं किया। वैसे भी मदद के लिए फिर से धन्यवाद।
प्रसाद डे जोयसा

62

यदि आप "बिल्ड एक्टिव आर्किटेक्चर ओनली" को अनचेक करते हैं, तो यह सभी वैध आर्किटेक्चर का निर्माण करेगा।

अद्यतन : यह अब Xcode 4 के रूप में लागू नहीं है - Xcode 4 और बाद के लिए निक के निर्देशों का पालन करें।


11
आप डिबग बिल्ड के लिए YES पर सेट करके अपने बिल्ड समय को तेज़ कर सकते हैं, और रिलीज़ बिल्ड पर नहीं।
बिली ग्रे

59

स्वीकृत उत्तर का पालन करने के बाद भी मुझे यह समस्या थी और काम करने के लिए निम्नलिखित पाया:

अपने Info.plist में, आवश्यक डिवाइस क्षमताओं के लिए एक प्रविष्टि जोड़ें। यह एक सरणी होनी चाहिए और इसमें दो प्रविष्टियां होंगी।

  • आइटम 0: armv6
  • आइटम 1: armv7

यह इस तरह दिखेगा:

आवश्यक उपकरण क्षमताओं का प्रवेश


इस समाधान ने मेरी अन्य वास्तुकला चेतावनियों को तय किया, लेकिन मुझे अभी भी शुरुआती एक मिलता है, और मेरे पास "बिल्ड एक्टिव आर्किटेक्चर ओनली" सेट "नो"
डेन एफ

मेरे लिए इसे ठीक कर दिया, क्योंकि पिछले समाधान लागू नहीं हुआ था। किसी कारण से armv6 मेरे बिल्ड आर्किटेक्चर सेटिंग्स के तहत अब और नहीं दिखा: S
seeafish

इसके साथ साथ निक के जवाब ने इसे मेरे लिए तय कर दिया। +1
सौरभ वाधवा

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

XCode 4.5+ के साथ निर्माण के लिए, आपको आवश्यक डिवाइस क्षमताओं से armv6 छोड़ना होगा।
पुलकित गोयल

26

Xcode 4.2 के बारे में निक के जवाब के अलावा, आपको अपनी info.plist फ़ाइल की समीक्षा करने की भी आवश्यकता हो सकती है। ऐसा लगता है जैसे Xcode 4.2 में नए प्रोजेक्ट्स की शुरुआत 'आवश्यक उपकरण क्षमताओं' में डिफ़ॉल्ट रूप से 'armv7' के रूप में होती है। यदि आप armv6 (जैसे iPhone 3G) चलाने वाले उपकरणों का समर्थन करना चाहते हैं, तो आपको इसे हटाने की आवश्यकता होगी।

यहां छवि विवरण दर्ज करें

अपनेProjectName-Info.plist में 'आवश्यक डिवाइस क्षमताओं' से armv7 हटाएं


21

एक आईओएस 6 अपडेट

Ios 6 के लिए Xcode 4.5.x में परिवर्तन

  1. Xcode 4.5.x (और बाद में) armv6 बायनेरिज़ बनाने में समर्थन नहीं करता है।
  2. अब इसमें iPhone 5 / armv7s सपोर्ट शामिल है।
  3. Xcode 4.5.x या बाद के साथ न्यूनतम समर्थित परिनियोजन लक्ष्य iOS 4.3 है।

6

मुझे यह समस्या भी हुई। मैंने केवल अपने तैनाती लक्ष्य को 4.3 पर सेट किया और केवल armv7 वास्तुकला को छोड़ दिया और यह काम किया। बिंदु पर लगभग सभी में 5 हैं, इसलिए 4.3 ठीक है।


3

मेरे लिए यह हर उत्तर के साथ काम नहीं करता है। लेकिन मैं TARGETS> आर्किटेक्चर> डिबग की कोशिश करता हूं और प्लस बटन के साथ एक नई पंक्ति जोड़ता हूं, और 'armv6' (बाहर के साथ) टाइप करता हूं, फिर Done पर क्लिक करता हूं।

और अंत में CMD + B और फिर PrjectName.app पर क्लिक करें (उत्पाद फ़ोल्डर में)> खोजक में खोलें> "PROJECT_NAME.APP" संपीड़ित करें (डीबग-आईफ़ोन में)> AppStore पर अपलोड करें

यहां छवि विवरण दर्ज करें

यह मेरी स्क्रीन सेटिंग है। यहां छवि विवरण दर्ज करें

यदि आपने प्रोजेक्ट शामिल किया है तो कृपया इसे सभी में कॉन्फ़िगर करें। आशा है कि आपकी मदद


1
इसके अतिरिक्त, मुझे काम करने से पहले रिलीज़ आर्किटेक्चर पर armv6 सेट करना होगा।
mph

3

इन उत्तरों के मिश्रण की कोशिश करने के बाद, मैं आखिरकार इसे बनाने के लिए लड़खड़ा गया। Im अभी Apple पर नाराज हो गया। सिर्फ एक घंटे में उन्होंने मुझे बर्बाद कर दिया। यहाँ मेरा विन्यास है।

यहां छवि विवरण दर्ज करें


2

मैंने उपरोक्त सभी उत्तरों की कोशिश की, किसी ने भी मेरे प्रश्न का समाधान नहीं किया। इसलिए मैं एक नया प्रोजेक्ट बनाता हूं और एक-एक करके बिल्ड सेटिंग्स को अलग करता हूं। केवल "वैकल्पिक अनुमतियाँ फ़ाइलें" अलग है। प्रोजेक्ट बिल्ड विफल हुआ है एक मान armv7। इसे हटाएं फिर साफ-> बिल्ड-> आर्काइव। सफल! आशा है कि आप सवाल हल कर सकते हैं


2

वाह, मैं हर 6 महीने में ऐप्स अपडेट / सबमिट करता हूं। हर बार जब मैं ऐसा करता हूं तो मुझे इसे करने के लिए "नया" तरीका सीखना पड़ता है ...

IOS 5.1 और Xcode 4.3.2 चलाते समय ऊपर बताई गई समान समस्याएं

पदों के लिए धन्यवाद! मैंने armv6, armv7 के लिए सभी प्रोजेक्ट सेटिंग्स को अपडेट करते हुए कुछ समय बिताया, लेकिन कोई खुशी नहीं हुई। जब मैंने "निर्माण सक्रिय आर्किटेक्चर केवल" सेट किया, तो मुझे दोनों ऑब्जेक्ट्स को एक ही डायरेक्टरी में रखने के बारे में बिल्ड एरर नहीं मिला।

सौभाग्य से, मैंने देखा कि आप लोग इसके बजाय लक्ष्य निर्माण सेटिंग्स को संशोधित कर रहे थे। यह वही है जो आखिरकार काम करता है (armv6, armv7, और सेटिंग "सक्रिय आर्किटेक्चर केवल" नहीं निर्माण लक्ष्य के तहत)। एक अस्वीकरण के रूप में, मैंने पहले से ही सभी आर्किटेक्चर को armv6, armv7 को प्रोजेक्ट सेटिंग्स में भी सेट कर दिया था।

वैसे भी, मदद के लिए धन्यवाद, ब्रेंट


2

मुझे XCode 4.3.2 पर टारगेट और प्रोजेक्ट सेटिंग्स दोनों में इन सेटिंग्स को बदलने के लिए सुनिश्चित होना चाहिए, ऐसा करने के बाद और इसे armv6 और armv7 दोनों के लिए बनाने के लिए हर जगह मैं अपना ऐप सबमिट करने में सक्षम था।

सुरक्षित उपाय के लिए मैंने बदलाव करने और एक स्वच्छ, निर्माण, संग्रह चक्र करने के बीच एक्सकोड को भी बाहर निकाल दिया।


0

मेरे लिए भी एक दर्दनाक समस्या है। बस एक घंटे के निर्माण और फिर से बनाने की कोशिश में खर्च किया - कोई खुशी नहीं। अंत में मुझे ऐसा करना पड़ा:

  1. आधार SDK को नवीनतम (मेरे मामले में iOS 5) में अपग्रेड करें
  2. XCode को पुनरारंभ करें
  3. साफ और निर्माण
  4. इसने काम कर दिया!

मुझे लगता है कि यह arm6 के बारे में शब्दजाल का एक गुच्छा है, arm7 जैसा कि यह देखा गया कि मेरी परियोजना दोनों के लिए वैध थी, कम से कम सेटिंग्स ऐसा कहने के लिए लग रहा था), मेरा अनुमान है कि यह तकनीकी के साथ हमें बाँधने का एक सनकी तरीका है, जिसे हम डॉन समझ में नहीं आता है, इसलिए हम सिर्फ आसान विकल्प लेते हैं और नवीनतम iOS (Apple के लिए अच्छा है कि अधिक से अधिक लोगों को अप-टू-डेट) के साथ लक्षित करें ...।


0

यहाँ है Apple प्रलेखन:

तकनीकी क्यू एंड ए QA1760

यह कहता है कि दो चीजें हैं जो आपको सही होनी चाहिए:

  1. armv6आर्किटेक्चर बिल्ड सेटिंग्स में जोड़ें
  2. केवल सक्रिय आर्किटेक्चर का निर्माण करें No

अगर यह अभी भी आपकी मदद नहीं करता है, तो दोहराएं कि आप वास्तव में आर्किटेक्चर बिल्ड सेटिंग्स को सही बिल्ड कॉन्फ़िगरेशन के लिए बदल रहे हैं - मैंने गलत एक के साथ आधा घंटा बर्बाद कर दिया और सोच रहा था कि यह काम क्यों नहीं किया ...

Edit Scheme...उत्पाद मेनू में चयन करें , बाईं सूची में "संग्रह" योजना पर क्लिक करें और बिल्ड कॉन्फ़िगरेशन की जांच करें। यदि आप अपेक्षित नहीं थे, तो मान बदलें।


0

ध्यान दें; मुझे अपने बेस प्रोजेक्ट, और अपने आवेदन में एम्बेडेड PhoneGap .xcodeproj फ़ाइल दोनों के लिए ये चरण करने थे।

हां, मैं PhoneGap एम्बेड करता हूं; वे अक्सर दूर तक अद्यतन करते हैं, और मुझे यह जानने के लिए दो महीने से भी कम समय मिला है कि एक सुविधा का ह्रास हो गया है।


0

एक armv6 प्रोसेसर से अधिक कुछ करने के लिए अपने परिनियोजन लक्ष्य को बदलने का प्रयास करें। XCode के लिए सेटिंग्स ऑपरेटिंग सिस्टम स्तर को संदर्भित कर रही हैं, उदाहरण के लिए: iOS संस्करण # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}।

(i) आप इसे बिल्ड सेटिंग टैब या सारांश टैब में सेट कर सकते हैं। प्रोजेक्ट नेविगेटर में विंडो के शीर्ष बाईं ओर प्रारंभ करें, इसमें सूचीबद्ध सभी फाइलें हैं। शीर्ष-सबसे एक पर क्लिक करें जिसमें एक नीला आइकन है।

(ii) यदि आप प्रोग्राम करने योग्य शेडर लाइन सर्किटरी का उपयोग करने की योजना बना रहे हैं, जिसे ओपनजीएल ईएस 2.0 एपीआई के माध्यम से एक्सेस और नियंत्रित किया जाता है, तो आपको अपना "परिनियोजन संस्करण" लगभग 4.3 पर सेट करना चाहिए, जो मेरा मानना ​​है कि केवल डिवाइस जैसे उपकरणों पर उपलब्ध है। 3GS या नया। xCode रिपोर्टिंग कर रहा है कि iOS 4.2.5 या उच्चतर रन आर्मव 7 कोड की आवश्यकता है। और एक बार फिर, इस प्रोसेसर, मेरा मानना ​​है, 3 जीएस के साथ शुरू हुआ। * आईओएस 4.3 अभी मेरे लिए पसंद है।

http://theiphonewiki.com/wiki/index.php?title=Armv7

http://en.wikipedia.org/wiki/List_of_iOS_devices


0

यदि xCode armv7 के बारे में शिकायत करता रहता है, तो सुनिश्चित करें कि आप किसी भी कनेक्ट डिवाइस (विशेष रूप से iPhone 5 !!) को डिस्कनेक्ट करें और फिर से प्रयास करें। जानकारी के उस छोटे से टुकड़े का पता लगाने के लिए मुझे घंटों लग गए।


0

स्नो लेपर्ड पर Xcode 4.2 का उपयोग करते हुए, मैंने एक ऐप बनाने के लिए निम्नलिखित सेटिंग्स का उपयोग किया जो कि armv6 (Iphone 3G और निचला) और armv7 (3GS सहित 3G की तुलना में नया सब कुछ) पर काम करता है।

आर्किटेक्चर: armv6 और armv7 (हटाए गए $ (ARCHS_STANDARD_32_BIT))
केवल सक्रिय आर्किटेक्चर का निर्माण करते हैं: कोई
आवश्यक डिवाइस क्षमताएं: armv6

यदि आप ऐप को 3 जी पर चलाना चाहते हैं और साथ ही कम चाहते हैं तो आवश्यक डिवाइस क्षमताओं में armv7 न डालें।


1
यह केवल एक चीज है जो मेरे लिए काम करती है। iphone4, iphone3g, ipad1, ipad2 पर परीक्षण। पढ़ें कि मुझे आवश्यक डिवाइस क्षमताओं में armv6 और armv7 डालना था, लेकिन जैसे ही मैंने armv7 में रखा, ऐप iphone3g पर अपलोड नहीं होगा / चलेगा
noromamai

"आवश्यक डिवाइस कैपबिलिटीज़" में armv7 प्रविष्टि को छोड़कर मुझे iPhone 3 जी पर चलने से मना कर दिया।
tinsukE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.