2011-10-13 17 views
102

मैंने अभी हाल ही में आईओएस 5 एसडीके पैकेज के साथ एक्सकोड 4.2 डाउनलोड किया है और मैंने तुरंत देखा है कि मैं अपने आईफोन 3 जी का उपयोग आईएसओ 4.2.1 के साथ डिबगिंग के लिए करने में असमर्थ हूं। मैं आईओएस 5 स्थापित के साथ अपने आईफोन 4 पर डीबग और परीक्षण करने में सक्षम हूं।क्या एक्सकोड 4.2 और आईओएस 5 एसडीके का उपयोग करते समय पुराने आईओएस संस्करणों को लक्षित करना संभव है?

किसी भी iOS कम से कम 5.0 Xcode सिर्फ कहते हैं चल रहा है मेरी किसी भी उपकरण के लिए "iPhone3GS के लिए दौड़ना समाप्त हो गया" और यह नहीं चलता है। मेरे पास मेरा परिनियोजन लक्ष्य 3.0 पर सेट है क्योंकि मैं 3.0 से ऊपर अपने ऐप में किसी भी सुविधा का उपयोग नहीं कर रहा हूं और मैं 3.0 या उच्चतम संस्करणों को लक्षित करने में सक्षम होना चाहता हूं। मेरे पास मेरी सभी प्रावधान प्रोफाइल स्थापित हैं और अद्यतित हैं।

मैं छोड़ दिया है और पुन: प्रारंभ xcode, मैं निर्माण कई बार साफ किया है। मैंने आर्कटेक्चर बिल्ड सेटिंग्स में armv6 जोड़ने का प्रयास किया है, लेकिन कुछ भी मुझे अपने पुराने फोन पर आईओएस 4.2.1 के साथ अपना ऐप बनाने और चलाने की अनुमति नहीं देगा।

मेरे सवाल है, यह अभी भी iOS संस्करण के लिए नए एसडीके काम से कम 5 कम से क्षुधा बनाने के लिए संभव है? मैं कैसे सुनिश्चित कर सकता हूं कि मेरा ऐप अभी भी कम आईओएस संस्करणों पर चलाएगा यदि मैं उन्हें अपने पुराने फोन पर स्थापित करने में असमर्थ हूं?

संपादित करें: ठीक ऐसा लगता है कि iOS SDK का 5 डिफ़ॉल्ट रूप से ARMv6 के लिए समर्थन गिरा दिया। आपको अपने लक्ष्य और अपनी परियोजना दोनों के लिए बिल्ड सेटिंग्स के तहत आर्किटेक्चर फ़ील्ड में armv6 जोड़ना है। फिर आपका ऐप आईफोन 3 जी डिवाइस पर चलने में सक्षम होगा। उत्तर यहाँ How to build for armv6 and armv7 architectures with iOS 5

+0

ध्यान दें कि आपके संपादन को आर्किटेक्चर के साथ करना है, जो 'आईओएस' संस्करणों के लिए एक अलग मुद्दा है। साथ ही, कृपया संपादन को उत्तर के रूप में जोड़ें ताकि आप जो समाधान प्राप्त कर सकें उसे स्वीकार कर सकें और इस प्रश्न को उत्तर के रूप में चिह्नित किया जा सके। – darvids0n

उत्तर

152

मैं एक ही मुद्दा एक नव निर्मित Xcode 4.2 परियोजना एक iPhone 3 जी 4.2.1 पर चल रहा प्राप्त करने की कोशिश हो रही थी। यहां बताया गया है कि मैं इसे चलाने में कैसे सक्षम था।

1) "मानक (armv7)" से "अन्य" से लक्ष्य की "बिल्ड सेटिंग्स" ==> "आर्किटेक्चर" बदलें। Armv6 और armv7 जोड़ें।

2) ARMv6 और ARMv7 करने के लिए "वैध वास्तुकला" बदलें लक्ष्य के "सेटिंग बनाएँ" ==>।

3) आईओएस 4.2 में लक्ष्य की "बिल्ड सेटिंग्स" ==> "आईओएस परिनियोजन लक्ष्य" बदलें।

enter image description here

4) परियोजनाओं * -Info.plist खोलें, सेटिंग "आवश्यक उपकरण क्षमताओं" (ध्यान दें यह ARMv7 आवश्यक) enter image description here

btw मैं इस पता लगा जब मैं मैन्युअल रूप से जोड़ने की कोशिश की को दूर आयोजक के माध्यम से एप्लिकेशन और यह बताया:

उपयोगकर्ता पर/आवेदन

Info.plist स्थापित नहीं कर सकता आवेदन के लिए/.. ./TestsDebug।ऐप डिवाइस क्षमता आवश्यकताओं को निर्दिष्ट करता है, जो देव आईफोन 3 जी

सभी के बाद काम करना चाहिए। एक पिटा के बारे में बात करो।

+0

बहुत बहुत धन्यवाद! मुझे तुम्हारी कुछ बीयर है! यह वास्तव में मेरी समस्याओं का समाधान करता है, वास्तव में पीआईटीए: डी –

+4

धन्यवाद! मैं वास्तुकला सेटिंग्स के बारे में कहीं और पढ़ूंगा, लेकिन कोई भी नहीं अन्यथा "आवश्यक डिवाइस क्षमताओं" सेटिंग्स का भी उल्लेख है। – bunnyhero

+1

सुपर! धन्यवाद ! –

1

आप फोन कनेक्ट करने के लिए और उसके बाद आयोजक के लिए जाने की जरूरत है पाया जा सकता है। एक्सकोड स्वचालित रूप से पुराने संस्करण का अनुरोध करना चाहिए।

अधिक जानकारी के लिए डेवलपर पृष्ठ देखें। यह 4.2 बीटा के लिए नोट में वर्णित किया गया था करने के लिए Xcode> Preferences> डाउनलोड और पुराने iOS संस्करण के लिए समर्थन डिबगिंग स्थापित

+0

मैंने ऐसा किया और "विकास के लिए इस डिवाइस का उपयोग करें" पर क्लिक किया और ऐसा लगता था कि यह क्या करना था, लेकिन मुझे अभी भी अपने पुराने डिवाइस पर एक्सकोड से चलाने के लिए ऐप नहीं मिल सकता है। –

12

जाओ।

+0

मैं वरीयताओं पर गया और पुराने ओएस के लिए डीबगिंग समर्थन डाउनलोड और स्थापित किया, एक्सकोड छोड़ दिया, फिर से खोल दिया गया एक्सकोड एक साफ और निर्माण किया, लेकिन ऐप अभी भी मेरे पुराने डिवाइस पर स्थापित नहीं होगा। मुझे अब कुल नुकसान हुआ है, जब मैंने आपकी प्रतिक्रिया देखी तो मैंने निश्चित रूप से सोचा कि मेरी समस्या ठीक हो जाएगी :( –

+1

मुझे तुम्हारी एक बियर भी है! यह एक्सकोड 4 अपग्रेड के बाद एक और समस्या हल हो गई है! अब मैं डीबग कर सकता हूं मेरा आईओएस 4.2 डिवाइस (आईपॉड टच 2 जीन)! –

3

mmorris मुझे इस मुद्दे को हल करने के करीब मिला ... Info.plist में, मुझे आवश्यक डिवाइस क्षमताओं को armv6 पर सेट करना था, armv7 नहीं, उम्मीद है कि यह दूसरों को भी मदद करता है।

1

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

1

मुझे एक पुराने आईपॉड टच पर अपना ऐप चलाने की कोशिश करने में एक ही समस्या का सामना करना पड़ा। मैंने एक्सकोड 4.3.3 में अपग्रेड किया और ऐप पुराने हार्डवेयर पर मेरे लिए डीबगर में नहीं चलाएगा।

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

मेरे मामले में, मुझे बिल्ड योजना को दोषी माना गया। एक्सकोड 4.3.3 ने मुझे अपनी परियोजना को अपग्रेड करते समय जीडीबी डीबगर से एलएलडीबी में स्विच करने के लिए प्रेरित किया। जब मैं ने मेरी योजना की रन एक्शन को वापस जीडीबी में बदल दिया, तो मैं अपने पुराने हार्डवेयर पर एक्सकोड से फिर से ऐप चलाने में सक्षम था।

0

यह मेरे लिए काम करता है और यदि आपके पास पहले एक्सकोड का पुराना संस्करण था तो आपके लिए काम करना चाहिए। यदि नहीं, तो आपको एसडीके के पुराने संस्करण से एसडीके प्राप्त करने के लिए दूसरों द्वारा दी गई सलाह का पालन करना चाहिए:

सुडो सीपी-ए/डेवलपर/प्लेटफार्म/आईफोनफोन.प्लाफार्म/डेवलपर/एसडीकेएस/आईफोनफोन 5.0.sdk/अनुप्रयोग /Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk

यह आदेश केवल दूसरों द्वारा दिखाए गए से थोड़ा अलग है, लेकिन उन आदेशों ने फ़ाइलों को छोड़ दिया मेरे लिए एसडीके फ़ोल्डर स्वयं - हम उचित नाम के साथ इसे बनाने की एक उपनिर्देशिका चाहते हैं।

0

मेरे मामले में आवश्यक उपकरण क्षमताओं enter image description here

मैं बस इसे हटा दिया में कोई अनावश्यक लाइन था ...

enter image description here

उम्मीद है कि यह किसी और में मदद मिलेगी।

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