क्या Xcode 4.2 और iOS 5 SDK का उपयोग करते समय पुराने iOS संस्करणों को लक्षित करना संभव है?


103

मैंने अभी हाल ही में iOS 5 SDK पैकेज के साथ Xcode 4.2 डाउनलोड किया था और मैंने तुरंत देखा कि मैं अपने iPhone 3Gs को iOS 4.2.1 के साथ डिबगिंग के लिए उपयोग करने में असमर्थ हूं। मैं केवल अपने iPhone 4 पर IOS 5 स्थापित करने के साथ डिबग और परीक्षण करने में सक्षम हूं।

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

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

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

संपादित करें: ठीक है ऐसा लगता है कि iOS SDK 5 डिफ़ॉल्ट रूप से armv6 के लिए समर्थन छोड़ दिया है। आपको जो करना है, अपने टारगेट और प्रोजेक्ट दोनों के लिए बिल्ड सेटिंग्स के तहत आर्किटेक्चर क्षेत्र में armv6 जोड़ें। तब आपका ऐप iPhone 3 जी डिवाइस पर चलने में सक्षम होगा। उत्तर यहां पाया जा सकता है कि iOS 5 के साथ armv6 और armv7 आर्किटेक्चर के लिए कैसे निर्माण किया जाए


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

जवाबों:


153

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

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

2) लक्ष्य की "बिल्ड सेटिंग्स" ==> "मान्य आर्किटेक्चर" को armv6 और armv7 में बदलें।

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

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

4) प्रोजेक्ट खोलें * -Info.plist, "आवश्यक डिवाइस क्षमताओं" सेटिंग को हटा दें (ध्यान दें कि यह आवश्यक armv7 है) यहां छवि विवरण दर्ज करें

btw जब मैंने मैन्युअल रूप से आयोजक के माध्यम से ऐप जोड़ने की कोशिश की और यह रिपोर्ट की तो मुझे यह पता चला:

एप्लिकेशन इंस्टॉल नहीं किया जा सकता है

Info.plist के लिए आवेदन /User/..//estsDebug.app पर उपकरण क्षमता की आवश्यकताओं को निर्दिष्ट करता है, जो देव iPhone 3 जी द्वारा पूरा नहीं किया जाता है

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


आपका बहुत बहुत धन्यवाद! मैं तुम्हें कुछ बियर देना! इसने वास्तव में मेरी समस्याओं को हल किया, पीटीए वास्तव में: डी
ग्रेग एलिस

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

मुझे जोड़ना होगा: नई और पुरानी दोनों परियोजनाएं अपग्रेड को प्रभावित कर रही हैं! मैंने अपने पुराने सामान को गोग्लिंग से पहले जांचा, और वे भी काम नहीं किया! मैं तुम्हें एक बीयर भी देना चाहता हूँ! :)
एडुआर्डो कोस्टा

1
मेरे पास एक ही मुद्दा है, लेकिन भले ही आर्किटेक्चर के लिए परियोजना की सेटिंग 'मानक armv7' थी, मान्य वास्तुकला पहले से ही 'armv6 armv7' का संकेत दे रही थी। इसके अलावा, मेरे पास Info.plist में कोई 'आवश्यक डिवाइस क्षमताएं' गुण नहीं था। फिर भी कोशिश की जाएगी, उम्मीद है कि यह काम करेगा!
राचम्पोरल

"आवश्यक डिवाइस क्षमताएं" मुझे भी
मिलीं

12

पर जाएं Xcode> Preferences> डाउनलोड और पुराने iOS संस्करण के लिए समर्थन डिबगिंग स्थापित करें।


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

1
मैं तुम्हें एक बीयर भी देना चाहता हूँ! XOT 4 अपग्रेड के बाद मेरे पास यह ANOTHER समस्या थी! अब मैं अपने iOS 4.2 डिवाइस (iPod Touch 2nd gen) को डीबग कर सकता हूं!
एडुआर्डो कोस्टा

3

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


1

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

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


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

1

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

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

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


1

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


0

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

sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Plifacts/iPhoneOS.platform/Developer/SDKsi/i

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


0

मेरे मामले में आवश्यक उपकरण क्षमताओं में एक निरर्थक रेखा थी यहां छवि विवरण दर्ज करें

मैंने अभी इसे हटा दिया है ...

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

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

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