2009-09-26 2 views
34

उत्सुक है कि लोगों ने अपना अंतिम निर्माण करने और ऐप स्टोर में सबमिट करने से पहले क्या सीखा है? डीबग से रिलीज करने के अलावा & एनएसएलओजी को कॉल करने पर टिप्पणी करने के अलावा अन्य बुनियादी और/या इतनी बुनियादी चीजों को हम किसके लिए देखना चाहिए?ऐप स्टोर के लिए अंतिम संस्करण बनाने से पहले प्री-रिलीज चेकलिस्ट

उत्तर

31

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

  1. अपने डिवाइस से ऐप हटाएं, सेलुलर डेटा से वाईफाई बंद करें, अब ऐप इंस्टॉल करें और परीक्षण करें। क्या यह ठीक से काम करता है (जितना इंटरनेट के बिना हो सकता है)? क्या यह कम से कम उपयोगकर्ता को बताता है कि नेटवर्क कनेक्शन की आवश्यकता है (यदि यह है) या यह दुर्घटनाग्रस्त हो जाता है?

  2. यदि आप CLLocationManager का उपयोग करते हैं: ऐप हटाएं, ताज़ा इंस्टॉल करें और चलाएं, लेकिन ऐप को स्थान डेटा रखने की अनुमति न दें। क्या ऐप अच्छा व्यवहार करता है या यह दुर्घटनाग्रस्त हो जाता है? क्या यह कम से कम उपयोगकर्ता को बताता है कि यह स्थान डेटा के बिना नहीं चलाया जा सकता है (यदि यह एक आवश्यकता है)? क्या यह एक आईपॉड टच पर काम करता है जो केवल वाईफाई का उपयोग करके सभी भौगोलिक स्थान करता है?

  3. करते निम्न चरणों का पालन सिम्युलेटर और प्रत्येक दृश्य नियंत्रक के लिए ऐप्स चलाएं: (क) iPhone सिम्युलेटर मेनू से "हार्डवेयर" का चयन करें -> "मेमोरी चेतावनी अनुकरण", (ख) अब अपने अनुप्रयोग के आसपास नेविगेट अन्य नियंत्रकों को देखने के लिए और देखें कि सब कुछ काम कर रहा है, (सी) किसी अन्य दृश्य नियंत्रक के लिए परीक्षण दोहराएं।

  4. यदि आप पुराने फर्मवेयर (यानी आईओएस 3.1.3) का समर्थन करते हैं, तो अपने ऐप को 3.1.3 पर चलने वाले डिवाइस पर इंस्टॉल करें और वहां परीक्षण करें (यदि आपके पास कोई नहीं है, तो 3.2 सिम्युलेटर का उपयोग करें)।

  5. फ़ोन कॉल पर या व्यक्तिगत हॉटस्पॉट सक्रिय होने पर अपना ऐप प्रारंभ करें।क्या सभी स्क्रीन लेआउट सही हैं (स्टेटस बार 20 के बजाय 40px ऊंचा है)? क्या दृश्य के नीचे 20px स्क्रीन से धक्का दिया गया है या यह सही ढंग से आकार बदल गया है?

  6. अपने ऐप में एक फोन कॉल स्वीकार करें, क्या यह सक्रिय इस्तीफा देता है और ठीक से फिर से शुरू होता है? फोन कॉल में रहते हुए अपने ऐप से खेलना बंद करो?

  7. संगीत बजाने के दौरान अपना ऐप शुरू करें, क्या संगीत खेलना जारी रखता है? क्या आपकी आवाज ठीक से मिश्रण करती है या संगीत को उचित रूप से फीका करती है?

  8. सीमित RAM के साथ धीमे devices पर परीक्षण प्रदर्शन जैसे: आईफोन 3 जी (128 एमबी रैम, 412 मेगाहर्ट्ज सीपीयू) या आईपॉड टच (1 या 2 जीन)।

  9. क्लैंग स्थिर विश्लेषक चलाएं और प्रत्येक चेतावनी को ठीक करें (या कम से कम समझें)।

  10. यकीन NSZombiesEnabled वातावरण चर में नहीं है (सावधानी: यकीन नहीं करता है, तो यह अभी भी एक समस्या है) इस जांच सूची दस्तावेज़ में

8

रिलीज पर स्विच करने के बजाय, मैं "वितरण" पर स्विच करता हूं। यह रिलीज की एक प्रति है, लेकिन इस तरह मैंने कुछ ऐप्पल दस्तावेज़ और iPhoneDeveloperTips द्वारा सिखाया।

महत्वपूर्ण बिंदु:

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

एसवीएन में सभी नवीनतम परिवर्तन करने के बाद, मैंने एक नई शाखा बनाई, और फ़ाइल को टैग करने के बाद, स्रोतों का अच्छा बैकअप बनाने के लिए बहुत समय व्यतीत करना है। मैं भी अपना संस्करण नंबर अपने एसवीएन बिल्ड/प्रतिबद्ध संख्या से मेल खाता हूं, इसलिए मुझे हमेशा पता है कि कौन सा एसवीएन संस्करण मेरी रिलीज से मेल खाता है। मेरे पास मेरी जानकारी में उन दो संस्करण संख्याएं हैं। प्लिस्ट और ऐप उपयोगकर्ता द्वारा खींच लिया जा सकता है जब वे i जानकारी के लिए हिट करते हैं। उदाहरण के लिए, वर्तमान info.pist में शामिल हैं:

<key>CFBundleShortVersionString</key> 
<string>2.0a1</string> 
<key>CFBundleVersion</key> 
<string>346</string> 

CFBundleVersion का उपयोग करने के तरीके पर विभिन्न विचार हैं। यह मेरा तरीका है। कमांड लाइन उपयोगिता, agvtool भी उपयोगी है।

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

अन्य चीजों को याद रखने के लिए ऐप आइकन, आईट्यून्स स्टोर, info.plist के लिए आवश्यक कई अन्य आइकन और ग्राफिक्स हैं और तथ्य यह है कि जब ऐप का अपलोड क्रिप्टिक त्रुटि संदेश में विफल रहता है, तो आमतौर पर आपके द्वारा बनाई जा रही संपीड़ित फ़ाइल (उन टुकड़ों जो ऐप बंडल में हैं) से गायब होने वाले इन टुकड़ों में से एक के साथ करना है।

17

कुछ बातें:

मैं वास्तव में, निर्माण विन्यास "वितरण" कहा जाता है बनाने नहीं सुझाव देता हूं क्योंकि एप्पल को निर्दिष्ट करता है, क्योंकि मैं अक्सर तदर्थ बनाने रहा बीटा परीक्षकों के लिए बनाता है। मैं दो बिल्ड कॉन्फ़िगरेशन बनाता हूं, जिसे एड होक कहा जाता है और जिसे ऐपस्टोर कहा जाता है, इसलिए मैं उलझन में नहीं हूं। दोनों के बीच एकमात्र अंतर विज्ञापन निर्माण के लिए Entitlements.plist फ़ाइल की उपस्थिति है।इस तरह से मैं जितना संभव हो सके परीक्षण कर सकता हूं जो मैं ऐप्पल को सबमिट कर रहा हूं।

अधिकांश डेवलपर आशावादी हैं। यही कारण है कि हम एक ऐप बनाने के लिए सप्ताहांत काम कर रहे हैं जिसे हम जानते हैं कि हमें करोड़पति बनाने जा रहे हैं। हालांकि सबमिट करने से पहले, एक निराशावादी बनें। कल्पना करें कि संभवतः गलत हो सकता है, और इसे दोबारा जांचें।

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

याद रखें कि यदि ऐप आपके 99.9% उपयोगकर्ताओं के लिए क्रैश नहीं होता है, तो प्रत्येक 1,000 डाउनलोड में से 1 परिणामस्वरूप 1-सितारा स्कैथिंग समीक्षा होगी।

मैं विकास के दौरान क्लैंग स्थिर विश्लेषक, लीक और ऑब्जेक्ट आवंटन का उपयोग करता हूं, लेकिन मैं केवल इन मामलों में जमा करने से पहले इन उपकरणों का एक अतिरिक्त भाग करता हूं।

यदि आपके पास पुराना डिवाइस नहीं है, तो एक प्राप्त करें, क्योंकि 3 जीएस प्रदर्शन काफी बेहतर है और आप कुछ महत्वपूर्ण प्रदर्शन समस्याओं को याद कर सकते हैं।

टेस्ट निम्न कॉन्फ़िगरेशन जब नेटवर्क या स्थान लागू होते हैं के साथ अपने ऐप:

  • आइपॉड टच iPhone 3G
  • iPhone 3GS
  • हवाई जहाज में iPhone मोड
  • WI-साथ
  • iPhone फाई
  • EDGE
  • के साथ आईफोन ई ऐप का उपयोग करते समय