GitLab اور فاسٹ لین کے ساتھ ایپ اسٹور پر iOS ایپلیکیشنز شائع کرنا

GitLab اور فاسٹ لین کے ساتھ ایپ اسٹور پر iOS ایپلیکیشنز شائع کرنا

کس طرح فاسٹ لین کے ساتھ GitLab iOS ایپلیکیشنز کو App Store پر اکٹھا، سائن اور شائع کرتا ہے۔

ہمارے پاس حال ہی میں تھا۔ اینڈرائیڈ ایپلیکیشن کو تیزی سے بنانے اور چلانے کے طریقے کے بارے میں پوسٹ کریں۔ GitLab اور کے ساتھ تیز رفتار. یہاں ہم دیکھیں گے کہ کس طرح ایک iOS ایپ بنانا اور چلانا ہے اور اسے TestFlight پر شائع کرنا ہے۔ چیک کریں کہ یہ کتنا ٹھنڈا ہے۔ میں GitLab Web IDE کے ساتھ آئی پیڈ پرو میں تبدیلی کر رہا ہوں۔میں اسمبلی لیتا ہوں اور اسی آئی پیڈ پرو پر ایپلیکیشن کے ٹیسٹ ورژن کی اپ ڈیٹ حاصل کرتا ہوں جہاں میں نے اسے تیار کیا تھا۔

یہاں ہم لیں گے۔ سوئفٹ پر سادہ iOS ایپجس کے ساتھ میں نے ویڈیو ریکارڈ کی تھی۔

ایپل اسٹور کی ترتیب کے بارے میں چند الفاظ

ہمیں ایک App Store ایپ، ڈسٹری بیوشن سرٹیفکیٹ، اور ہر چیز کو ایک ساتھ جوڑنے کے لیے ایک پروویژننگ پروفائل کی ضرورت ہوگی۔

یہاں سب سے مشکل چیز App Store میں سائن کرنے کے حقوق مرتب کرنا ہے۔ مجھے امید ہے کہ آپ خود ہی اس کا اندازہ لگا سکتے ہیں۔ اگر آپ نئے ہیں، تو میں آپ کو صحیح سمت بتاؤں گا، لیکن ہم یہاں Apple سرٹیفکیٹس کے انتظام کی پیچیدگیوں کے بارے میں بات نہیں کریں گے، اور وہ مسلسل تبدیل ہو رہے ہیں۔ یہ پوسٹ شروع کرنے میں آپ کی مدد کرے گی۔

میری ایپس۔

آپ کو App Store Connect میں ایک ایپ کی ضرورت ہے تاکہ آپ کے پاس کنفیگریشن کے لیے ID ہو۔ .xcodebuild. پروفائل اور ایپلیکیشن ID صارفین کو ٹیسٹ ایپلیکیشنز تقسیم کرنے کے لیے کوڈ کی تعمیر، قیمتوں اور دستیابی اور TestFlight کی ترتیب کو یکجا کرتی ہے۔ پبلک ٹیسٹنگ نہ کریں، اگر آپ کے پاس چھوٹا گروپ ہے، آسان سیٹ اپ ہے اور ایپل سے اضافی اجازت کی ضرورت نہیں ہے تو پرائیویٹ ٹیسٹنگ کافی ہوگی۔

ابتدائی پروفائل

ایپ سیٹ اپ کے علاوہ، آپ کو ایپل ڈویلپر کنسول کے سرٹیفکیٹس، شناخت کنندگان اور پروفائلز سیکشن میں تخلیق کردہ iOS ڈسٹری بیوشن اور ڈویلپمنٹ کیز کی ضرورت ہے۔ ان تمام سرٹیفکیٹس کو پروویژننگ پروفائل میں جوڑا جا سکتا ہے۔

جن صارفین کی توثیق کی جائے گی انہیں سرٹیفکیٹ بنانے کے قابل ہونے کی ضرورت ہے، بصورت دیگر اقدامات سرٹیفکیٹ اور سانس آپ کو ایک غلطی نظر آئے گی۔

دیگر اختیارات

اس آسان طریقہ کے علاوہ، سرٹیفکیٹس اور پروفائلز کو ترتیب دینے کے اور بھی طریقے ہیں۔ لہذا، اگر آپ مختلف طریقے سے کام کرتے ہیں، تو آپ کو اپنانا پڑے گا۔ سب سے اہم بات یہ ہے کہ آپ کو کنفیگریشن کی ضرورت ہے۔ .xcodebuild، جو ضروری فائلوں کی طرف اشارہ کرے گا، اور کیچین اس صارف کے لیے جس کے نام سے رنر چل رہا ہے کے لیے بلڈ کمپیوٹر پر دستیاب ہونا چاہیے۔ ڈیجیٹل دستخط کے لیے ہم فاسٹ لین استعمال کرتے ہیں، اور اگر کوئی مسئلہ ہے یا آپ مزید جاننا چاہتے ہیں، تو ان کی تفصیلات دیکھیں ڈیجیٹل دستخطوں کے بارے میں دستاویزات.

اس مثال میں میں نقطہ نظر استعمال کر رہا ہوں۔ سرٹیفکیٹ اور سانس، لیکن حقیقی استعمال کے لیے یہ شاید بہتر موزوں ہے۔ میل کھاتے ہیں.

GitLab اور فاسٹ لین کی تیاری

CI رنر کی تیاری

یہ تمام ڈیٹا اکٹھا کرنے کے بعد، ہم MacOS ڈیوائس پر GitLab رنر کی ترتیب کی طرف بڑھتے ہیں۔ بدقسمتی سے، آپ صرف MacOS پر iOS ایپس بنا سکتے ہیں۔ لیکن سب کچھ بدل سکتا ہے، اور اگر آپ اس علاقے میں پیش رفت کی توقع رکھتے ہیں، جیسے منصوبوں پر نظر رکھیں xcbuild и نشاناور ہمارا اندرونی کام gitlab-ce#57576.

رنر کو ترتیب دینا بہت آسان ہے۔ موجودہ کی پیروی کریں۔ میک او ایس پر گٹ لیب رنر کو ترتیب دینے کی ہدایات.

نوٹ. رنر کو ایک قابل عمل پروگرام استعمال کرنا چاہیے۔ shell. کنٹینرز کے بجائے براہ راست بطور صارف کام کرنے کے لیے میک او ایس پر 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

ایپل کیچین کو اس میزبان پر ان چابیاں تک رسائی کے ساتھ کنفیگر کیا جانا چاہیے جو Xcode کو بنانے کی ضرورت ہے۔ اس کی جانچ کرنے کا سب سے آسان طریقہ یہ ہے کہ اس صارف کے طور پر لاگ ان ہوں جو بلڈ کو چلائے گا اور اسے دستی طور پر بنانے کی کوشش کرے گا۔ اگر سسٹم کیچین تک رسائی مانگتا ہے، تو CI کو کام کرنے کے لیے ہمیشہ اجازت دیں کو منتخب کریں۔ یہ یقینی بنانے کے لیے پائپ لائنوں کے پہلے جوڑے میں جانا اور دیکھنے کے قابل ہو سکتا ہے کہ وہ اب کیچین کے لیے نہ پوچھیں۔ مصیبت یہ ہے کہ ایپل ہمارے لیے آٹو موڈ استعمال کرنا آسان نہیں بناتا، لیکن ایک بار جب آپ اسے شروع کر دیں تو سب کچھ ٹھیک ہو جائے گا۔

فاسٹ لین init

کسی پروجیکٹ میں فاسٹ لین استعمال کرنے کے لیے، چلائیں۔ fastlane init. بس پیروی کریں۔ فاسٹ لین کو انسٹال کرنے اور چلانے کے لیے ہدایات، خاص طور پر کے بارے میں سیکشن میں جیم فائلکیونکہ ہمیں ایک خودکار CI پائپ لائن کے ذریعے تیز رفتار اور متوقع لانچ کی ضرورت ہے۔

اپنی پروجیکٹ ڈائرکٹری میں، ان کمانڈز کو چلائیں:

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

فاسٹ لین ایک بنیادی ترتیب طلب کرے گا اور پھر تین فائلوں کے ساتھ پروجیکٹ میں فاسٹ لین فولڈر بنائے گا۔

1. fastlane/Appfile

یہاں کچھ بھی پیچیدہ نہیں ہے۔ بس یقینی بنائیں کہ آپ کی ایپل آئی ڈی اور ایپ آئی ڈی درست ہیں۔

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile تعمیر کے مراحل کی وضاحت کرتا ہے۔ ہم فاسٹ لین کی بہت سی بلٹ ان خصوصیات استعمال کرتے ہیں، اس لیے یہاں بھی سب کچھ واضح ہے۔ ہم ایک لائن بناتے ہیں جو سرٹیفکیٹ حاصل کرتی ہے، اسمبلی کو انجام دیتی ہے اور اسے TestFlight پر اپ لوڈ کرتی ہے۔ اگر ضروری ہو تو آپ اس عمل کو مختلف کاموں میں تقسیم کر سکتے ہیں۔ یہ تمام آپریشنز (get_certificates, get_provisioning_profile, gym и 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

لہذا، ہمارے پاس پروجیکٹ کے لیے ایک CI رنر ہے اور ہم پائپ لائن کی جانچ کرنے کے لیے تیار ہیں۔ آئیے دیکھتے ہیں کہ ہمارے پاس کیا ہے۔ .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 پر سیٹ کیا ہے۔حکمت عملی استعمال کریں۔ clone پروگرام پر عملدرآمد کے ساتھ shell، تاکہ ہمارے پاس ہر اسمبلی کے لئے ایک صاف کام کی جگہ ہو، اور صرف کال کریں۔ flappybuild فاسٹ لین، جیسا کہ اوپر دیکھا گیا ہے۔ نتیجے کے طور پر، ہمیں TestFlight میں تازہ ترین اسمبلی کی اسمبلی، دستخط اور تعیناتی ملتی ہے۔

ہم نمونے بھی حاصل کرتے ہیں اور اسے اسمبلی کے ساتھ محفوظ کرتے ہیں۔ براہ کرم نوٹ کریں کہ فارمیٹ .ipa ایک دستخط شدہ ARM قابل عمل ہے جو سمیلیٹر میں نہیں چلتا ہے۔ اگر آپ سمیلیٹر کے لیے آؤٹ پٹ چاہتے ہیں، تو صرف وہ تعمیراتی ہدف شامل کریں جو اسے تیار کرتا ہے، اور پھر اسے آرٹفیکٹ پاتھ میں شامل کریں۔

دیگر ماحولیاتی متغیرات

یہاں ماحولیاتی متغیرات کے ایک جوڑے ہیں جو ہر چیز کو کام کرتے ہیں۔

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

ایپ اسٹور میں تصدیق کرنے اور TestFlight پر اپ لوڈ کرنے کے لیے فاسٹ لین کے لیے توثیق درکار ہے۔ ایسا کرنے کے لیے، ایپلیکیشن کے لیے ایک پاس ورڈ بنائیں جو CI میں استعمال ہوگا۔ تفصیلات یہاں.

اگر آپ کے پاس دو عنصر کی توثیق ہے تو متغیر بنائیں FASTLANE_SESSION (وہاں ہدایات)

FASTLANE_USER и FASTLANE_PASSWORD

کہ سرٹیفکیٹ اور سانس درخواست پر ابتدائی پروفائل اور سرٹیفکیٹ کہا جاتا ہے، آپ کو متغیرات کو ترتیب دینے کی ضرورت ہے۔ FASTLANE_USER и FASTLANE_PASSWORD. تفصیلات یہاں. اگر آپ دستخط کرنے کا کوئی مختلف طریقہ استعمال کر رہے ہیں تو یہ ضروری نہیں ہے۔

آخر میں

آپ دیکھ سکتے ہیں کہ یہ سب کیسے کام کرتا ہے۔ میری سادہ مثال میں.

مجھے امید ہے کہ یہ مددگار ثابت ہوا اور آپ کو GitLab پروجیکٹ میں iOS کے ساتھ کام کرنے کی ترغیب ملی۔ یہاں ایک اور ہے CI تجاویز فاسٹ لین کے لیے، صرف اس صورت میں۔ آپ استعمال کرنا چاہیں گے۔ CI_BUILD_ID (بڑھتی ہوئی تعمیرات کے لیے) سے خود بخود ورژن میں اضافہ.

فاسٹ لین کی ایک اور عمدہ خصوصیت ہے۔ خودکار اسکرین شاٹس ایپ اسٹور کے لیے، جس کا سیٹ اپ کرنا بہت آسان ہے۔

ہمیں اپنے تجربے کے بارے میں تبصروں میں بتائیں اور iOS ایپ کی ترقی کے لیے GitLab کو بہتر بنانے کے لیے اپنے خیالات کا اشتراک کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں