GitLab और fastlane के साथ ऐप स्टोर पर iOS ऐप प्रकाशित करें


Fastlane के साथ GitLab कैसे ऐप स्टोर पर iOS ऐप्स को इकट्ठा करता है, साइन करता है और प्रकाशित करता है।


हमने हाल ही में एक पोस्ट किया था कि कैसे जल्दी से GitLab और फास्टलेन के साथ एक Android एप्लिकेशन बनाएं और चलाएं । यहां हम यह देखेंगे कि iOS एप्लिकेशन को कैसे बनाएं और चलाएं और इसे TestFlight पर प्रकाशित करें। चेक आउट करें कि मैं iPad Pro पर GitLab Web IDE के साथ कितना अच्छा बदलाव कर रहा हूं , बिल्ड और उसी iPad प्रो पर एप्लिकेशन के परीक्षण संस्करण का अपडेट प्राप्त कर रहा हूं जहां मैंने इसे विकसित किया है।


यहां हम स्विफ्ट पर एक सरल आईओएस ऐप लेते हैं जिसके साथ मैंने एक वीडियो रिकॉर्ड किया है।


Apple स्टोर के कॉन्फ़िगरेशन के बारे में कुछ शब्द


हमें ऐप स्टोर में एक ऐप की आवश्यकता होगी, वितरण प्रमाण पत्र, और सब कुछ एक साथ बांधने के लिए एक प्रारंभिक प्रोफ़ाइल।


यहां सबसे मुश्किल काम है ऐप स्टोर में हस्ताक्षर अधिकारों को कॉन्फ़िगर करना। मुझे आशा है कि आप इसे अपने लिए समझ सकते हैं। यदि आप एक शुरुआत कर रहे हैं, तो मैं आपको सही दिशा में इंगित करूंगा, लेकिन यहां हम Apple प्रमाणपत्रों के प्रबंधन की जटिलताओं के बारे में बात नहीं करेंगे, और वे लगातार बदल रहे हैं। यह पोस्ट आपको शुरू करवा देगा।


मेरे आवेदन


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


प्रारंभिक प्रोफ़ाइल


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


प्रमाणीकरण उपयोगकर्ताओं को प्रमाण पत्र बनाने की क्षमता की आवश्यकता होती है, अन्यथा आपको प्रमाणित और आह कदम में त्रुटि दिखाई देगी।


अन्य विकल्प


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


इस उदाहरण में, मैं सर्टिफिकेट और आउटर एप्रोच का उपयोग करता हूं, लेकिन असली एप्लिकेशन के लिए, मैच शायद बेहतर है।


GitLab और Fastlane तैयार करना


सीआई धावक तैयार करना


यह सभी डेटा एकत्र करने के बाद, हम MacOS डिवाइस पर GitLab धावक के कॉन्फ़िगरेशन के लिए आगे बढ़ते हैं। दुर्भाग्य से, iOS ऐप बनाना केवल MacOS पर वास्तविक है। लेकिन चीजें बदल सकती हैं, और यदि आप इस क्षेत्र में प्रगति की प्रतीक्षा कर रहे हैं, तो xcbuild और isign जैसी परियोजनाओं पर नज़र रखें , और हमारा आंतरिक कार्य, गिटलैब-सी # 57576


एक धावक स्थापित करना बहुत सरल है। MacOS पर GitLab Runner स्थापित करने के लिए वर्तमान निर्देशों का पालन करें।


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


 sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64 sudo chmod +x /usr/local/bin/gitlab-runner cd ~ gitlab-runner install gitlab-runner start 

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


फास्टलेन init


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


प्रोजेक्ट डायरेक्टरी में, ये कमांड्स चलाएँ:


 xcode-select --install sudo gem install fastlane -NV # Alternatively using Homebrew # brew cask install fastlane fastlane init 

फास्टलेन बुनियादी विन्यास के लिए पूछेगा, और फिर तीन फ़ाइलों के साथ प्रोजेक्ट में एक फास्टलेन फ़ोल्डर बनाएँ:


1. fastlane/Appfile


यहां कुछ भी जटिल नहीं है। बस सुनिश्चित करें कि Apple ID और एप्लिकेशन ID सही हैं।


 app_identifier("com.vontrance.flappybird") # The bundle identifier of your app apple_id("your-email@your-domain.com") # Your Apple email address 

2. fastlane/Fastfile


Fastfile परिभाषित चरणों का निर्माण। हम कई अंतर्निहित फास्टलेन विशेषताओं का उपयोग करते हैं, इसलिए यहां भी सब कुछ स्पष्ट है। प्रमाण पत्र प्राप्त करने, बनाने, और उसे TestFlight में लोड करने के लिए एक पंक्ति बनाएँ। यदि आवश्यक हो तो आप इस प्रक्रिया को विभिन्न कार्यों में विभाजित कर सकते हैं। ये सभी ऑपरेशन ( get_certificates , get_provisioning_profile , gym and upload_to_testflight ) पहले से ही फास्टलेन में शामिल हैं।


get_certificates और get_provisioning_profile प्रमाणपत्र और हस्ताक्षर हस्ताक्षर से संबंधित हैं। यदि आप मैच या कुछ और उपयोग कर रहे हैं, तो एक बदलाव करें।


 default_platform(:ios) platform :ios do desc "Build the application" lane :flappybuild do get_certificates get_provisioning_profile gym upload_to_testflight end end 

3. fastlane/Gymfile


यह एक वैकल्पिक फ़ाइल है, लेकिन मैंने इसे डिफ़ॉल्ट रूप से डिफ़ॉल्ट आउटपुट निर्देशिका को बदलने और आउटपुट को वर्तमान फ़ोल्डर में डालने के लिए बनाया है। यह CI को सरल बनाता है। यदि दिलचस्पी है, तो प्रलेखन में gym और उसके मापदंडों के बारे में पढ़ें।


 https://docs.fastlane.tools/actions/gym/ 

हमारा .gitlab-ci.yml


इसलिए, हमारे पास परियोजना के लिए एक सीआई धावक है, और हम पाइपलाइन का परीक्षण करने के लिए तैयार हैं। आइए देखें कि हमारे पास क्या है।


 stages: - build variables: LC_ALL: "en_US.UTF-8" LANG: "en_US.UTF-8" GIT_STRATEGY: clone build: stage: build script: - bundle install - bundle exec fastlane flappybuild artifacts: paths: - ./FlappyBird.ipa 

सब कुछ बहुत अच्छा है! हम फास्टलेन के लिए UTF-8 प्रारूप निर्धारित करते हैं, आवश्यकतानुसार , shell एग्जीक्यूटिव के साथ clone रणनीति का उपयोग करते हैं ताकि हमारे पास प्रत्येक विधानसभा के लिए एक साफ कार्यक्षेत्र हो, और ऊपर flappybuild अनुसार बस flappybuild फास्टलेन को कॉल करें। परिणामस्वरूप, हमें TestFlight में अंतिम असेंबली की असेंबली, हस्ताक्षर और परिनियोजन मिलता है।


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


अन्य पर्यावरण चर


पर्यावरण चर के एक जोड़े हैं कि सब कुछ पर काम करता है।


FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD और FASTLANE_SESSION


ऐप स्टोर में प्रमाणीकरण और टेस्टफ़लाइट पर अपलोड करने के लिए फास्टलेन के लिए प्रमाणीकरण की आवश्यकता होती है। ऐसा करने के लिए, CI में उपयोग किए जाने वाले एप्लिकेशन के लिए एक पासवर्ड बनाएं। यहाँ विवरण।


यदि आपके पास दो-कारक प्रमाणीकरण है, तो FASTLANE_SESSION चर (वहां निर्देश) बनाएं।


FASTLANE_USER और FASTLANE_PASSWORD


प्रमाणपत्र और डिमांड पर सर्टिफिकेशन प्रोफाइल और सर्टिफिकेट मांगने के लिए FASTLANE_USER और FASTLANE_PASSWORD चर सेट करना होगा। यहाँ विवरण। यदि आप किसी भिन्न हस्ताक्षर विधि का उपयोग करते हैं तो यह आवश्यक नहीं है।


निष्कर्ष में


आप देख सकते हैं कि यह सब मेरे सरल उदाहरण में कैसे काम करता है


आशा है कि यह मददगार था और मैंने आपको GitLab प्रोजेक्ट में iOS बिल्ड के साथ काम करने के लिए प्रेरित किया। यहां फास्टलेन के लिए कुछ और सीआई टिप्स दिए गए हैं, बस मामले में। आप संस्करण को स्वचालित रूप से बढ़ाने के लिए CI_BUILD_ID (वृद्धिशील बिल्ड के लिए) का उपयोग करना चाह सकते हैं।


फास्टलेन की एक और अच्छी सुविधा ऐप स्टोर के लिए स्वचालित स्क्रीनशॉट है , जो स्थापित करना बहुत आसान है।


टिप्पणियों में अपने अनुभव साझा करें और iOS ऐप के विकास के लिए GitLab को बेहतर बनाने के लिए विचारों को साझा करें।

Source: https://habr.com/ru/post/hi444170/


All Articles