کس طرح فاسٹ لین کے ساتھ GitLab iOS ایپلیکیشنز کو App Store پر اکٹھا، سائن اور شائع کرتا ہے۔
ہمارے پاس حال ہی میں تھا۔
یہاں ہم لیں گے۔
ایپل اسٹور کی ترتیب کے بارے میں چند الفاظ
ہمیں ایک App Store ایپ، ڈسٹری بیوشن سرٹیفکیٹ، اور ہر چیز کو ایک ساتھ جوڑنے کے لیے ایک پروویژننگ پروفائل کی ضرورت ہوگی۔
یہاں سب سے مشکل چیز App Store میں سائن کرنے کے حقوق مرتب کرنا ہے۔ مجھے امید ہے کہ آپ خود ہی اس کا اندازہ لگا سکتے ہیں۔ اگر آپ نئے ہیں، تو میں آپ کو صحیح سمت بتاؤں گا، لیکن ہم یہاں Apple سرٹیفکیٹس کے انتظام کی پیچیدگیوں کے بارے میں بات نہیں کریں گے، اور وہ مسلسل تبدیل ہو رہے ہیں۔ یہ پوسٹ شروع کرنے میں آپ کی مدد کرے گی۔
میری ایپس۔
آپ کو App Store Connect میں ایک ایپ کی ضرورت ہے تاکہ آپ کے پاس کنفیگریشن کے لیے ID ہو۔ .xcodebuild
. پروفائل اور ایپلیکیشن ID صارفین کو ٹیسٹ ایپلیکیشنز تقسیم کرنے کے لیے کوڈ کی تعمیر، قیمتوں اور دستیابی اور TestFlight کی ترتیب کو یکجا کرتی ہے۔ پبلک ٹیسٹنگ نہ کریں، اگر آپ کے پاس چھوٹا گروپ ہے، آسان سیٹ اپ ہے اور ایپل سے اضافی اجازت کی ضرورت نہیں ہے تو پرائیویٹ ٹیسٹنگ کافی ہوگی۔
ابتدائی پروفائل
ایپ سیٹ اپ کے علاوہ، آپ کو ایپل ڈویلپر کنسول کے سرٹیفکیٹس، شناخت کنندگان اور پروفائلز سیکشن میں تخلیق کردہ iOS ڈسٹری بیوشن اور ڈویلپمنٹ کیز کی ضرورت ہے۔ ان تمام سرٹیفکیٹس کو پروویژننگ پروفائل میں جوڑا جا سکتا ہے۔
جن صارفین کی توثیق کی جائے گی انہیں سرٹیفکیٹ بنانے کے قابل ہونے کی ضرورت ہے، بصورت دیگر اقدامات
دیگر اختیارات
اس آسان طریقہ کے علاوہ، سرٹیفکیٹس اور پروفائلز کو ترتیب دینے کے اور بھی طریقے ہیں۔ لہذا، اگر آپ مختلف طریقے سے کام کرتے ہیں، تو آپ کو اپنانا پڑے گا۔ سب سے اہم بات یہ ہے کہ آپ کو کنفیگریشن کی ضرورت ہے۔ .xcodebuild
، جو ضروری فائلوں کی طرف اشارہ کرے گا، اور کیچین اس صارف کے لیے جس کے نام سے رنر چل رہا ہے کے لیے بلڈ کمپیوٹر پر دستیاب ہونا چاہیے۔ ڈیجیٹل دستخط کے لیے ہم فاسٹ لین استعمال کرتے ہیں، اور اگر کوئی مسئلہ ہے یا آپ مزید جاننا چاہتے ہیں، تو ان کی تفصیلات دیکھیں
اس مثال میں میں نقطہ نظر استعمال کر رہا ہوں۔
GitLab اور فاسٹ لین کی تیاری
CI رنر کی تیاری
یہ تمام ڈیٹا اکٹھا کرنے کے بعد، ہم MacOS ڈیوائس پر GitLab رنر کی ترتیب کی طرف بڑھتے ہیں۔ بدقسمتی سے، آپ صرف MacOS پر iOS ایپس بنا سکتے ہیں۔ لیکن سب کچھ بدل سکتا ہے، اور اگر آپ اس علاقے میں پیش رفت کی توقع رکھتے ہیں، جیسے منصوبوں پر نظر رکھیں
رنر کو ترتیب دینا بہت آسان ہے۔ موجودہ کی پیروی کریں۔
نوٹ. رنر کو ایک قابل عمل پروگرام استعمال کرنا چاہیے۔ 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
. بس پیروی کریں۔
اپنی پروجیکٹ ڈائرکٹری میں، ان کمانڈز کو چلائیں:
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
سب کچھ! 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_BUILD_ID
(بڑھتی ہوئی تعمیرات کے لیے) سے
فاسٹ لین کی ایک اور عمدہ خصوصیت ہے۔
ہمیں اپنے تجربے کے بارے میں تبصروں میں بتائیں اور iOS ایپ کی ترقی کے لیے GitLab کو بہتر بنانے کے لیے اپنے خیالات کا اشتراک کریں۔
ماخذ: www.habr.com