2010-09-19 10 views
5

कुछ महीने पहले मुझे ऐप्पल से एक चौंकाने वाला ईमेल मिला, यह बता रहा था कि वे आईओएस 4.x एसडीके के खिलाफ बनाए गए हर ऐप को अस्वीकार कर देंगे। अब मुझे आश्चर्य है कि:क्या पुराने आईओएस उपकरणों के लिए अभी भी विकास करना संभव है?

1) क्या यह एक बुरा मजाक है?

2) यदि नहीं: तो क्या इसका मतलब यह है कि मेरा ऐप केवल आईफोन 4, आईपॉड टच 4 या आईओएस 4.x इंस्टॉल किए गए किसी भी डिवाइस जैसे बहुत लेटेस डिवाइस पर चलता है?

मैंने नवीनतम आईओएस एसडीके डाउनलोड किया और मैं केवल 3.2 या 4.1 के खिलाफ निर्माण कर सकता हूं, जहां मेरा मानना ​​है कि 3.2 केवल आईपैड के लिए है। अब मैं पुराने ओएस के साथ अपने 6 आइपॉड स्पर्शों को फेंक सकता हूं या मैं भाग्यशाली हूं और अभी भी उन सभी को 4.1 तक अपग्रेड किए बिना कोड करने का एक तरीका है।

आपको क्या लगता है? सच क्या है?

+1

यह प्रश्न धारणा बनाता है कि 4.x एसडीके केवल 4.x उपकरणों को लक्षित करने के लिए है। वह सत्य नहीं है। "एसडीके" और "परिनियोजन लक्ष्य" के बीच एक अंतर है। – benzado

उत्तर

7

कुछ महीने पहले मैं एप्पल की चौंकाने वाला ईमेल प्राप्त हुआ है, कह रही है कि वे हर अनुप्रयोग है कि आईओएस 4.x एसडीके के खिलाफ नहीं बनाया गया है अस्वीकार कर देंगे। अब मैं आश्चर्यचकित हूं कि:

1) क्या यह एक बुरा मजाक है?

नहीं, लेकिन यह एक अच्छी बात है।

सबसे पहले, यह डेवलपर्स को सबसे अद्यतित एसडीके का उपयोग जारी रखने के लिए प्रोत्साहित करता है।

दूसरा, यह उपयोगकर्ताओं को नवीनतम फर्मवेयर में अपडेट करने के लिए प्रोत्साहित करता है। (कम बग, अधिक स्थिरता, कम सुरक्षा छेद)।

तीसरा, यह आपको एक निश्चित लक्ष्य प्रस्तुत करता है जब आपको अपना ऐप सबमिट करने की बात आती है। यदि ऐप्पल आईओएस के हर संस्करण के खिलाफ परीक्षण करता है, तो ऐप्स को हमेशा स्वीकृत होने के लिए ले जाएगा, और आप विशिष्ट उपकरणों पर फर्मवेयर के विशिष्ट संस्करणों पर सभी प्रकार की छोटी बग्स प्राप्त कर लेंगे। यह पागलपन होगा।

2) यदि नहीं: इसका मतलब यह है कि मेरे ऐप केवल बहुत lates उपकरणों iPhone4, आइपॉड स्पर्श 4, या किसी भी उपकरण की तरह है कि आईओएस 4.x स्थापित किया है पर चलेगा?

आप जो कुछ भी चाहते हैं उसके लिए बिल्ड सेटिंग्स में परिनियोजन लक्ष्य सेट कर सकते हैं, लेकिन मैं किसी भी ऐप के लिए 3.1.x से कम की अनुशंसा नहीं करता। (1) के कारण, अधिकांश उपयोगकर्ता 3.x का उपयोग कर छोटे प्रतिशत के साथ 4.x का उपयोग कर रहे हैं, और वस्तुतः कोई भी 2.x या 1.x चल रहा है।

मैं नवीनतम आईओएस एसडीके डाउनलोड किया है और मैं केवल 3.2 या 4.1, के खिलाफ निर्माण कर सकते हैं कि मैं कहाँ का मानना ​​है कि 3.2 आईपैड के लिए ही है। अब मैं अपने 6 आईपॉड पुराने ओएस के साथ स्पर्श को फेंक सकता हूं या मैं भाग्यशाली हूं और को कोड के बिना 4.1 पर अपग्रेड किए बिना उनके लिए अभी भी एक तरीका है।

यदि आपके पास पुराने ऐप्स आइपॉड टच (जैसा कि मैं करता हूं - पहला जीन) अपने ऐप्स का परीक्षण करने के लिए इसे (3.1.3 के साथ) रखता है। इसे फेंक मत दो।

+0

क्या आप विस्तार से जाते हैं कि उस परिनियोजन लक्ष्य को कैसे सेट करें? और इसका क्या मतलब है? क्या एक्सकोड मुझे बताता है जब मैं उन तरीकों का उपयोग करता हूं जो आईओएस 3.0 में उपलब्ध नहीं हैं, उदाहरण के लिए? (हाँ, मेरे पास हर आईपॉड टच पीढ़ी है ... अनुमान डेवलपर्स एप्पल सबसे अच्छे ग्राहक हैं) – openfrog

+0

आपने प्रोजेक्ट के लिए बिल्ड सेटिंग्स में परिनियोजन लक्ष्य सेट किया है: अपनी प्रोजेक्ट पर जानकारी प्राप्त करें और "बिल्ड" टैब पर क्लिक करें। यह डिवाइस को ऐप चलाने के लिए डिवाइस पर होना आवश्यक डिवाइस के आईओएस का न्यूनतम संस्करण निर्दिष्ट करता है। एक्सकोड आपको यह नहीं बताता कि 3.0 में कौन सी विधियां हैं, जब तक कि उन विधियों को बहिष्कृत नहीं किया जाता है। आपको UIKit लाइब्रेरी को कमजोर-लिंक करना होगा और फिर जांचने के लिए अपने कोड से गुज़रना होगा, साथ ही अच्छी तरह से परीक्षण करना होगा। –

3
  1. नहीं, यह नहीं है, यह "ऐप्पल के अनुसार कानून" है।
  2. नहीं, ऐसा नहीं है। "तैनाती लक्ष्य" नामक एक सेटिंग है जिसे आप आईओएस 3.0 या बाद के संस्करणों को सेट कर सकते हैं। इसका इस्तेमाल करें। लेकिन आपको आईओएस 4 एसडीके के खिलाफ निर्माण करना होगा।

सच यह है कि ऐप्पल क्या कहता है, और जो मैंने अभी ऊपर स्पष्ट किया है। :)

+0

क्या आप विस्तार से जा सकते हैं कि तैनाती लक्ष्य कैसे सेट करें? और इसका क्या मतलब है? क्या एक्सकोड मुझे बताता है जब मैं उन तरीकों का उपयोग करता हूं जो आईओएस 3.0 में उपलब्ध नहीं हैं, उदाहरण के लिए? – openfrog

+0

एसडीके दस्तावेज आपको बताता है कि एक एपीआई कब उपलब्ध हो गया था, और जब यह था (यदि यह किया गया है) बहिष्कृत किया गया था। उस विधि के लिए इनलाइन दस्तावेज लाने के लिए विधि पर 'कमांड-विकल्प-डबल क्लिक'। साथ ही, अपने लक्ष्य के लिए अपनी बिल्ड सेटिंग्स में, आप वहां "परिनियोजन लक्ष्य" पा सकते हैं। इसमें एक ड्रॉप डाउन सूची है, एक चुनें। – jer

+0

प्रोजेक्ट की सेटिंग्स में, "बेस एसडीके" को "नवीनतम" सेट करने के लिए सेट करें, फिर अपने "परिनियोजन लक्ष्य" को जितना चाहें उतना कम सेट करें। मैं अभी भी 3.0 का समर्थन कर रहा हूँ! (लेकिन बहुत लम्बे समय के लिए नहीं…)। –

1

आप अभी भी पुराने उपकरणों के लिए विकसित कर सकते हैं। आपको केवल आपके द्वारा समर्थित पुराने आईओएस संस्करण पर तैनाती लक्ष्य सेट करने की आवश्यकता है। हालांकि आपको सबसे हालिया एसडीके फिर से बनाना होगा।

आप आधिकारिक documentation पर अधिक जानकारी प्राप्त कर सकते हैं।

+0

"हालिया एसडीके के खिलाफ इमारत" का मतलब बेस एसडीके को कुछ उच्च करने के लिए है? – openfrog

0

एक्सकोड के संस्करण 4.5 के अनुसार, आर्म v6 के लिए विकास अब समर्थित नहीं है। इसका मतलब है कि आप एक ऐप नहीं बना सकते जो मूल आईफोन, आईफोन 3 जी या पहली/दूसरी पीढ़ी के आइपॉड टच पर चलेगा। यदि आप 3 जी का उपयोग करके निर्माण करने का प्रयास करते हैं, तो यह आपको एक चेतावनी देगा कि यह एक समर्थित डिवाइस नहीं है।

यदि आपको उन पुराने उपकरणों का समर्थन करने की आवश्यकता है, तो आपको Xcode 4.4.1 का उपयोग करना होगा। यदि आप उस संस्करण का उपयोग करते हैं, तो आप तैनाती लक्ष्य निर्धारित करके अभी भी आईफोन ओएस 3 पर समर्थन कर सकते हैं। आप older Xcode versions from Apple डाउनलोड कर सकते हैं।

वास्तविकता यह है कि बहुत कम लोग आईफोन ओएस 3 पर हैं और जब तक कि आपके पास बहुत अच्छा कारण न हो, आपको केवल आईओएस 4 पर चढ़ना चाहिए। Check the stats यह देखने के लिए कि यह वास्तव में आपके समय के लायक है या नहीं।

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