2011-11-30 12 views
14

मेरे पास एक आईफोन ऐप है जो armv7 के साथ-साथ armv6 पर चलना चाहिए। डीबगिंग के लिए ऐप को भी सिम्युलेटर में चलाना चाहिए।

Xcode 4.2 में मानक यह है:

ARMv7 ($(ARCHS_STANDARD_32_BIT))

यह क्या $(ARCHS_STANDARD_32_BIT) के लिए खड़ा है और मेरे लिए स्पष्ट नहीं है कि मैं दो का उपयोग करना चाहिए:

  1. $ (ARCHS_STANDARD_32_BIT)
  2. ARMv6

या सभी तीन इस

  1. ARMv6
  2. ARMv7 तरह
  3. i386

मेरे मामले में इसके लिए सबसे अच्छा विकल्प क्या है? और ArchitecturesValid Architectures

+0

अब मैं 'armv6' और' armv7' का उपयोग 'आर्किटेक्चर' के रूप में ('i386' के बिना) armv6 के लिए संकलित कर सकता हूं। तो वर्तमान में मैं '$ (ARCHS_STANDARD_32_BIT)' – Besi

+4

$ (ARCHS_STANDARD_32_BIT) का उपयोग नहीं कर रहा हूं जो Xcode डिफ़ॉल्ट टेम्पलेट में परिभाषित किया गया है, जिसे आप संशोधित नहीं कर सकते हैं, हालांकि आप इसे अपनी कॉन्फ़िगरेशन बनाकर ओवरराइड कर सकते हैं।इसे "armv6 arv7" के रूप में परिभाषित किया जाता था लेकिन उन्होंने 4.2 में इसे "armv7" में बदल दिया। मैं केवल अपनी पहली तकनीक का उपयोग करके पुराने व्यवहार को पुनर्स्थापित करने में सक्षम था, लेकिन केवल आईओएस एसडीके का उपयोग करने वाले लक्ष्यों पर (आपको एसडीके आईओएस बनाम सिम्युलेटर के लिए लाइन जोड़ने के लिए बिल्ड सेटिंग्स में छोटे "(+)" बटन पर क्लिक करना होगा , और केवल आईओएस के लिए इसे बदलें)। –

+0

क्या किसी को पता है कि आईओएस उपकरणों को armv6 की आवश्यकता है? क्या यह मुख्य रूप से सिर्फ आईपॉड टच 3 जी है जैसा कि नीचे दी गई टिप्पणी में उल्लिखित है? – mpontillo

उत्तर

16

सिम्युलेटर में चलाने के लिए आपको कुछ भी करने की ज़रूरत नहीं है।

आप armv6 armv7 पर Valid Architectures सेटिंग छोड़ सकते क्योंकि, डॉक्स के अनुसार:

निर्माण के दौरान इस सूची की स्थापना

का समर्थन करने के archs निर्माण के मूल्य के साथ विभाजित है armv6 और armv7, आर्किटेक्चर को $(ARCHS_STANDARD_32_BIT) armv6 पर सेट करें, $ (ARCHS_STANDARD_32_BIT) वर्तमान में armv7 तक फैलता है।

यह भी जांचें कि क्या आपकी आवश्यक फ़ाइल में "आवश्यक डिवाइस क्षमताओं" = UIRequiredDeviceCapabilities सेटिंग है, क्योंकि एक्सकोड नई परियोजनाओं के लिए armv7 जोड़ देगा।

+0

जो पूर्ण ज्ञान देता है। किसी कारण से - अभी भी अज्ञात - एक्सकोड ने शिकायत शुरू की [बेरर] किसी भी आर्किटेक्चर को संकलित करने के लिए (ARCHS = armv6, VALID_ARCHS = i386)। यह केवल सिम्युलेटर निर्माण के लिए था। वैध आर्किटेक्चर की सूची में i386 जोड़ने से एक अलग त्रुटि "जीसीसी निकास कोड 255" उत्पन्न हुई। तो, आपका जवाब धमाका है। मैंने $ (ARCHS_STANDARD_32_BIT) डाल दिया है जो सिम्युलेटर और armv7 को कवर करता है, और विशेष रूप से आईपॉड टच 3 जी 8 जीबी के लिए एक और लाइन armv6 जोड़ा। –

+0

मेरे पास @MaxMacLeod के समान सटीक समस्या थी और इसे ठीक किया गया - ARCHS को $ ARCHS_STANDARD_32_BIT) पर सेट किया गया था लेकिन VALID_ARCHS को armv7 पर सेट किया गया था। $ (ARCHS_STANDARD_32_BIT) दोनों में बदलना काम करता है - हालांकि मैं वास्तव में समझ नहीं पा रहा हूं कि i386 एक वैध लक्ष्य है जब यह सूचीबद्ध नहीं है! –

+0

@ k1th अच्छा जवाब .. एक संदर्भ हालांकि चोट नहीं पहुंचाएगा .. मैं जानना चाहता हूं कि आपने ARCHS_STANDARD_32_BIT का अर्थ क्या बताया है (आपको वैसे भी +1 दिया गया है :) – abbood

8

Xcode 4.5 साथ अद्यतन: एप्पल नई वास्तुकला armv7s, जो iPhone 5

जब से मैं नई iPhone5 पर हमारे एप्लिकेशन का परीक्षण नहीं कर सकता है के लिए नए हार्डवेयर के लिए अनुकूलन कहते हैं कहा, मैं इस वास्तुकला हटाया $(ARCHS_STANDARD_32_BIT) से समर्थित आर्किटेक्चर को बदलकर हमारे ऐप से (जिसका अर्थ है armv7 + armv7s) केवल armv7 पर।

यदि आप पुराने आईफोन 3 जी का समर्थन करना चाहते हैं या आपको armv6 जोड़ने की आवश्यकता है।

आप दोनों आर्किटेक्चर और मान्य आर्किटेक्चर के लिए ऐसा करने की जरूरत है।

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