2011-12-11 18 views
7

की मेरे पास एक मौजूदा iOS एप्लिकेशन एपस्टोर पर रहते हैं जो संस्करण 1.0iPhone एप्लिकेशन अपडेट बनाम नए संस्करण

है अब मैं एप्लिकेशन में कुछ परिवर्तन करने और वापस प्रस्तुत करना चाहते हैं करते हैं।

क्या सबमिट करने के 2 अलग-अलग तरीके हैं? जैसा कि मैं अभी भी संस्करण को 1.0 के रूप में रख सकता हूं और बस ऐप सबमिट कर सकता हूं या मुझे एक नया संस्करण 1.1 बनाने और फिर सबमिट करने की आवश्यकता है?

प्रक्रिया में अंतर क्या हैं?

ग्राहक के अंत से, यह नए/मौजूदा उपयोगकर्ताओं के लिए कैसे काम करता है?

उत्तर

10

मैंने अभी संस्करण उन्नयन और ऐप स्टोर के बारे में कुछ खोज लिया है। अभी, मैं आईओएस सिस्टम के व्यवहार के कारण मुद्दों और उपयोगकर्ताओं को दुर्घटनाग्रस्त कर रहा हूं जिन्हें मैं पहले नहीं समझ सकता। और, बहुत महत्वपूर्ण, आईट्यून्स, ऐपस्टोर और आईओएस ने पिछले संस्करणों में कुछ उन्नयन और नियमों को स्थापित किया है। अब, यह इस तरह से काम करता है: - जब उपयोगकर्ता एक नया संस्करण स्थापित करता है, तो बंडल की सभी फाइलें डाउनलोड की जाती हैं और पिछले मौजूदा बंडल में कॉपी की जाती हैं, लेकिन पुरानी फाइलें या घटक हटाए नहीं जाते हैं (या सभी हटाए नहीं जाते हैं)। तो, अंतिम बंडल नए संस्करण की ताजा स्थापना के बंडल के बराबर नहीं है। - उदाहरण के लिए, यदि xib/nib फ़ाइल को नए संस्करण के लिए अलग-अलग भाषाओं में स्थानीयकृत किया गया है, तो अपडेट किए गए बंडल में दोनों संस्करण शामिल होंगे: मूल फ़ोल्डर में से एक और दूसरा स्थान प्रत्येक स्थानीय फ़ोल्डर में। सिस्टम, स्पष्ट रूप से, पहले का उपयोग करेगा और केवल एक ताजा स्थापना उस फ़ाइल के लिए स्थानीयकरण दिखाएगी। मेरे ऐप्स में से एक यह दिखाता है कि मेनविंडो.एक्सिब के साथ समस्या और संदर्भ और कक्षाओं में कुछ संशोधन हैं, इसलिए जब भी आप इसे चलाने की कोशिश करते हैं तो अपडेट किए गए ऐप्स क्रैश होते हैं क्योंकि यह एक अप्रचलित वस्तु का उपयोग कर रहा है। मैंने एक नया संस्करण बनाया है जो xib/nib फ़ाइलों का नाम बदल रहा है जिन्हें स्थानीयकृत किया गया है। चूंकि मेनविंडो उनमें से एक है, मुझे निश्चित रूप से जानकारी में संदर्भ को संशोधित करना होगा।

ठीक है, यह जानकर, आप बंडल में पूर्ण विभिन्न घटकों के साथ एक नया संस्करण बना सकते हैं, यदि पिछले संस्करण की फ़ाइलें मौजूद हैं, तो ऐप उपयोगकर्ता को उनका उपयोग करने का विकल्प प्रदान करता है। यही है, एक आइकन और बंडल में ऐप के दो संस्करण। करना बहुत मुश्किल नहीं है।

लेकिन, बहुत अजीब चीज यह है कि मुझे लगता है कि नया आईओएस संस्करण और आईट्यून्स डाउनग्रेड की अनुमति नहीं देते हैं। मैंने ऐसा करने की कोशिश की है लेकिन इसे पूरा नहीं किया है। यही है, यदि आप एक संस्करण स्थापित करते हैं, उदाहरण के लिए 1.2, डिवाइस पर बाद में v1.1 इंस्टॉल करने के लिए AFAIK असंभव है और न ही आईट्यून्स -> "एप्लिकेशन" में। तो, डबल संस्करण बंडल ऐप की पुनर्स्थापन तक लाइव रहेगा।

+0

बहुत ही जानकारीपूर्ण उत्तर गेबेरियल :) क्या आप कृपया मुझे स्क्लाइट भाग बता सकते हैं? वास्तव में क्या हुआ जब पुराने और नए संस्करण के समान नाम वर्ग फ़ाइल (abc.sqlite1.0 कहें)? मेरा ऐप नया संस्करण कैसे व्यवहार करेगा? क्या यह पुरानी स्क्लाइट ओवरराइड करेगा? या मुझे दोनों स्क्लाइट से डेटा मिलेगा। –

+0

हां। मैंने जो कुछ कहा है वह ऐप बंडल में आइटमों के बारे में है। यदि दोनों के पास बंडल में एक ही नाम है, तो पुराना एक अपेक्षाकृत नए द्वारा प्रतिस्थापित किया जाता है। – Gabriel

+0

@ गैब्रियल: क्या इसे बदलने से पहले पुराने डीबी से डेटा को कॉपी करने का कोई तरीका है? – Mrunal

8

आपको एक नया संस्करण संख्या बनाने की आवश्यकता है, जो समझ में आता है क्योंकि यह आपके ऐप का एक नया संस्करण है। यह तब आपके ग्राहकों के लिए एक अद्यतन के रूप में दिखाई देगा। मुझे नहीं लगता कि आप दुकान से पुराने को हटाए बिना उसी संस्करण के साथ एक नई बाइनरी अपलोड कर सकते हैं।

आप आईट्यून्स कनेक्ट में एक नया संस्करण जोड़ते हैं, फिर एक्सकोड में संस्करण संख्या को मिलान करने और एक नया संग्रह बनाने के लिए अद्यतन करें। यह बहुत सरल है।

2

आपको हमेशा अपने ऐप में किसी भी अपडेट के संस्करण संख्या को बढ़ाना होगा।

उपयोगकर्ता डिवाइस पर ऐप स्टोर आइकन पर बैज और अपने पीसी पर आईट्यून्स में बैज देखेंगे। अद्यतन अनुभाग में जाकर, यह आपके ऐप को आपके द्वारा प्रदान किए गए परिवर्तनों की सूची के साथ सूचीबद्ध करेगा, और अपडेट इंस्टॉल करने के लिए एक बटन होगा। वे एक ही समय में सभी ऐप्स अपडेट कर सकते हैं।

1
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSLog(@"version is%@",version); 
+0

धन्यवाद, बस कहने के लिए .. –

+0

आप '[[[एनएसबंडल मेनबंडल] infoDictionary] ऑब्जेक्टफोरकी: @" सीएफबंडलशॉर्टवर्सनस्ट्रिंग "] का उपयोग कर सकते हैं, साझा संस्करणों में डेटाबेस या नई/बहिष्कृत कुंजी के रूप में संस्करणों को बदलने के लिए (' [NSUserDefaults standardUserDefaults] ')। यहां उदाहरण दिया गया है: http://stackoverflow.com/a/23082595/2835520 – IgniteCoders

0

आपको अब सबमिट करने के लिए संस्करण संख्याएं खोलने की ज़रूरत नहीं है।एक्सकोड खोलें, विंडो पर जाएं - ऑर्गनाइज़र - अभिलेखागार और एक ऐप वितरित करें जिसे आपने सफलतापूर्वक बनाया है।

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