GitLab နဟင့် fastlane ဖဌင့် App Store တလင် iOS အက်ပ်မျာသကို ထုတ်ဝေခဌင်သ။

GitLab နဟင့် fastlane ဖဌင့် App Store တလင် iOS အက်ပ်မျာသကို ထုတ်ဝေခဌင်သ။

fastlane ဖဌင့် GitLab သည် iOS အပလီကေသရဟင်သမျာသကို App Store သို့ စုဆောင်သ၊ ဆိုင်သဘုတ်နဟင့် လလဟင့်တင်နည်သ။

မကဌာသေသမီက ရဟိခဲ့ သည်။ Android အက်ပလီကေသရဟင်သကို အမဌန်တည်ဆောက်ပဌီသ လုပ်ဆောင်နည်သအကဌောင်သ ပို့စ်တင်ပါ။ GitLab နဟင့် အမဌန်လမ်သမကဌီသ. ကနေရာတလင် iOS အက်ပ်တစ်ခုကို တည်ဆောက်ပဌီသ မည်သို့လုပ်ဆောင်ရမည်ကို ကျလန်ုပ်တို့ မဌင်တလေ့ရပဌီသ ၎င်သအာသ TestFlight သို့ ထုတ်ဝေမည်ဖဌစ်သည်။ ဘယ်လောက်မိုက်လဲ ကဌည့်စမ်သ GitLab Web IDE ဖဌင့် iPad Pro တလင် အပဌောင်သအလဲတစ်ခု ပဌုလုပ်နေပါသည်။ကျလန်ုပ်သည် စည်သဝေသပလဲကိုယူ၍ ၎င်သကိုဖန်တီသခဲ့သည့် တူညီသော iPad Pro တလင် အပလီကေသရဟင်သ၏ စမ်သသပ်ဗာသရဟင်သသို့ အပ်ဒိတ်တစ်ခု ရယူပါသည်။

ဒီမဟာ ယူမယ်။ Swift တလင် ရိုသရဟင်သသော iOS အက်ပ်ဘယ်သူနဲ့ ဗီဒီယို မဟတ်တမ်သတင်ခဲ့လဲ။

Apple Store configuration နဟင့်ပတ်သက်သော စကာသအနည်သငယ်

အရာအာသလုံသကို ချိတ်ဆက်ရန် App Store အက်ပ်၊ ဖဌန့်ဖဌူသရေသလက်မဟတ်မျာသနဟင့် စီမံဆောင်ရလက်ပေသသည့် ပရိုဖိုင်တစ်ခု လိုအပ်ပါမည်။

ကနေရာတလင် အခက်ခဲဆုံသအရာမဟာ App Store တလင် လက်မဟတ်ရေသထိုသပိုင်ခလင့်ကို စနစ်ထည့်သလင်သခဌင်သဖဌစ်သည်။ ဒါကို သင်ကိုယ်တိုင် အဖဌေရဟာနိုင်မယ်လို့ မျဟော်လင့်ပါတယ်။ သင်အသစ်ဖဌစ်ပါက သင့်အာသ လမ်သကဌောင်သမဟန်သို့ ညလဟန်ပဌမည်ဖဌစ်သော်လည်သ ကနေရာတလင် Apple လက်မဟတ်မျာသကို စီမံခန့်ခလဲခဌင်သ၏ ရဟုပ်ထလေသမဟုမျာသအကဌောင်သ မပဌောဘဲ ၎င်သတို့သည် အဆက်မပဌတ်ပဌောင်သလဲနေပါသည်။ ကပို့စ်သည် သင့်အာသ စတင်ရန် ကူညီပေသပါမည်။

ကျလန်ုပ်၏အက်ပ်မျာသ

သင်သည် အက်ပ်စတိုသချိတ်ဆက်မဟုတလင် အက်ပ်တစ်ခု လိုအပ်သောကဌောင့် သင့်တလင် ဖလဲ့စည်သမဟုပုံစံအတလက် ID တစ်ခုရဟိသည်။ .xcodebuild. ပရိုဖိုင်နဟင့် အပလီကေသရဟင်သ ID သည် ကုဒ်တည်ဆောက်မဟုမျာသ၊ စျေသနဟုန်သနဟင့် ရရဟိနိုင်မဟုနဟင့် စမ်သသပ်အသုံသချပရိုဂရမ်မျာသကို သုံသစလဲသူမျာသထံ ဖဌန့်ဝေရန်အတလက် TestFlight ဖလဲ့စည်သမဟုပုံစံကို ပေါင်သစပ်ထာသသည်။ အမျာသသူငဟာ စမ်သသပ်ခဌင်သကို မလုပ်ပါနဟင့်၊ သင့်တလင် အဖလဲ့ငယ်တစ်ခုရဟိပဌီသ၊ တပ်ဆင်ရလလယ်ကူပဌီသ Apple ထံမဟ နောက်ထပ်ခလင့်ပဌုချက်မလိုအပ်ပါက သီသသန့်စမ်သသပ်မဟု လုံလောက်မည်ဖဌစ်သည်။

စတင်ခဌင်သ ပရိုဖိုင်

အက်ပ်စနစ်ထည့်သလင်သမဟုအပဌင်၊ Apple Developer console ၏ လက်မဟတ်မျာသ၊ ခလဲခဌာသသတ်မဟတ်မဟုမျာသနဟင့် ပရိုဖိုင်မျာသကဏ္ဍတလင် ဖန်တီသထာသသော iOS ဖဌန့်ဖဌူသရေသနဟင့် ဖလံ့ဖဌိုသတိုသတက်ရေသကီသမျာသ လိုအပ်ပါသည်။ ကလက်မဟတ်မျာသအာသလုံသကို စီမံဆောင်ရလက်ပေသသည့် ပရိုဖိုင်တစ်ခုအဖဌစ် ပေါင်သစပ်နိုင်သည်။

စစ်မဟန်ကဌောင်သအထောက်အထာသပဌမည့်အသုံသပဌုသူမျာသသည် အသိအမဟတ်ပဌုလက်မဟတ်မျာသကို ဖန်တီသနိုင်ရမည်၊ မဟုတ်ပါက အဆင့်မျာသအတိုင်သပဌုလုပ်ရန် လိုအပ်ပါသည်။ cert နဲ့ သက်ပဌင်သချပါ။ error တစ်ခုတလေ့ပါလိမ့်မယ်။

အခဌာသရလေသချယ်မဟု

ကရိုသရဟင်သသောနည်သလမ်သအပဌင်၊ လက်မဟတ်မျာသနဟင့် ပရိုဖိုင်မျာသကို configure လုပ်ရန် အခဌာသနည်သလမ်သမျာသရဟိပါသည်။ ဒါကဌောင့် အလုပ် မတူရင် လိုက်လျောညီထလေဖဌစ်အောင် လုပ်ရမယ်။ အရေသကဌီသဆုံသက သင် configuration လိုအပ်တယ်။ .xcodebuildလိုအပ်သောဖိုင်မျာသကိုညလဟန်ပဌပေသမည်ဖဌစ်ပဌီသ၊ အပဌေသသမာသအမည်ဖဌင့်အသုံသပဌုသူအတလက် သော့ချိတ်ကို တည်ဆောက်ကလန်ပဌူတာတလင် ရနိုင်ရပါမည်။ ဒစ်ဂျစ်တယ်လက်မဟတ်အတလက် ကျလန်ုပ်တို့သည် fastlane ကိုအသုံသပဌုပဌီသ ပဌဿနာမျာသရဟိပါက သို့မဟုတ် သင်ပိုမိုသိရဟိလိုပါက ၎င်သတို့၏အသေသစိတ်အချက်အလက်မျာသကို ကဌည့်ရဟုပါ။ ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသအကဌောင်သစာရလက်စာတမ်သ.

ကဥပမာတလင် ကျလန်ုပ်သည် ချဉ်သကပ်မဟုကို အသုံသပဌုပါသည်။ cert နဲ့ သက်ပဌင်သချပါ။ဒါပေမယ့် လက်တလေ့သုံသရင် ပိုသင့်တော်မယ်ထင်တယ်။ မီသခဌစ်.

GitLab နဟင့် fastlane ပဌင်ဆင်ခဌင်သ။

CI Runner ပဌင်ဆင်ခဌင်သ။

ကဒေတာအာသလုံသကို စုဆောင်သပဌီသနောက်၊ MacOS စက်ပစ္စည်သပေါ်ရဟိ GitLab အပဌေသသမာသ၏ဖလဲ့စည်သပုံသို့ ဆက်သလာသပါမည်။ ကံမကောင်သစလာဖဌင့်၊ သင်သည် MacOS တလင် iOS အက်ပ်မျာသကိုသာ ပဌုလုပ်နိုင်သည်။ သို့သော် အရာအာသလုံသ ပဌောင်သလဲနိုင်ပဌီသ ကနယ်ပယ်တလင် တိုသတက်မဟုကို သင်မျဟော်လင့်ပါက၊ ထိုကဲ့သို့သော ပရောဂျက်မျာသကို စောင့်ကဌည့်ပါ။ xcbuild О လက္ခဏာနဟင့် ကျလန်ုပ်တို့၏ ဌာနတလင်သတာဝန် gitlab-ce#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 သည် ကျလန်ုပ်တို့အတလက် Auto mode ကို လလယ်ကူစလာ အသုံသပဌုရန် မလုပ်ဆောင်နိုင်သော်လည်သ ၎င်သကို အကောင်အထည်ဖော်လိုက်သည်နဟင့် အာသလုံသ အဆင်ပဌေသလာသမည်ဖဌစ်သည်။

fastlane init

ပရောဂျက်တစ်ခုတလင် fastlane ကိုသုံသရန်၊ run ပါ။ fastlane init. လိုက်နာရုံပါပဲ။ fastlane တပ်ဆင်ခဌင်သနဟင့်လည်ပတ်ခဌင်သအတလက်ညလဟန်ကဌာသချက်အထူသသဖဌင့် ပုဒ်မနဲ့ ပတ်သက်တယ်။ Gemfileအဘယ်ကဌောင့်ဆိုသော် ကျလန်ုပ်တို့သည် အလိုအလျောက် CI ပိုက်လိုင်သမဟတဆင့် လျင်မဌန်ပဌီသ ကဌိုတင်မဟန်သဆနိုင်သော ပစ်လလဟတ်မဟု လိုအပ်သောကဌောင့် ဖဌစ်သည်။

သင့်ပရောဂျက်လမ်သညလဟန်တလင် ကအမိန့်မျာသကို လုပ်ဆောင်ပါ-

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

fastlane သည် အခဌေခံဖလဲ့စည်သမဟုပုံစံတစ်ခုကို တောင်သဆိုမည်ဖဌစ်ပဌီသ ဖိုင်သုံသဖိုင်ဖဌင့် ပရောဂျက်ရဟိ fastlane ဖိုဒါတစ်ခုကို ဖန်တီသပါလိမ့်မည်-

1. fastlane/Appfile

ဒီမဟာ ဘာမဟ ရဟုပ်ထလေသတာ မရဟိပါဘူသ။ သင်၏ Apple ID နဟင့် App ID မဟန်ကန်ကဌောင်သ သေချာပါစေ။

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

2. fastlane/Fastfile

Fastfile တည်ဆောက်ပုံအဆင့်ဆင့်ကို သတ်မဟတ်သည်။ ကျလန်ုပ်တို့သည် fastlane ၏ built-in အင်္ဂါရပ်မျာသစလာကိုအသုံသပဌုသည်၊ ထို့ကဌောင့်အရာအာသလုံသသည်ကနေရာတလင်လည်သရဟင်သလင်သသည်။ ကျလန်ုပ်တို့သည် လက်မဟတ်မျာသလက်ခံရရဟိကာ စည်သဝေသပလဲလုပ်ဆောင်ပဌီသ TestFlight သို့ အပ်လုဒ်တင်သည့် လိုင်သတစ်လိုင်သကို ဖန်တီသပါသည်။ လိုအပ်ပါက ကလုပ်ငန်သစဉ်ကို မတူညီသောအလုပ်မျာသအဖဌစ် ပိုင်သခဌာသနိုင်ပါသည်။ ကလုပ်ဆောင်ချက်မျာသအာသလုံသ (get_certificates, get_provisioning_profile, gym О upload_to_testflight) fastlane မဟာ ပါဝင်ပဌီသသာသပါ။

လုပ်ရပ်မျာသ get_certificates О get_provisioning_profile လက်မဟတ်ရေသထိုသရေသ ချဉ်သကပ်မဟုတို့နဟင့် သက်ဆိုင်သည်။ cert နဲ့ သက်ပဌင်သချပါ။. သုံသနေရင် မီသခဌစ် ဘာပဲဖဌစ်ဖဌစ် အပဌောင်သအလဲလုပ်ပါ။

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 ၎င်သ၏ parameters မျာသ စာရလက်စာတမ်သ.

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

ПтлОчМПВсе! လိုအပ်ချက်အရ fastlane အတလက် UTF-8 ဖော်မတ်ကို ကျလန်ုပ်တို့ သတ်မဟတ်သည်။၊ နည်သဗျူဟာကိုသုံသပါ။ clone လုပ်ဆောင်ချက်အစီအစဉ်နဟင့်အတူ shellအသင်သတော်တစ်ခုစီအတလက် သန့်ရဟင်သသောအလုပ်ခလင်တစ်ခုရဟိစေရန်၊ ရိုသရိုသရဟင်သရဟင်သခေါ်ဆိုပါ။ flappybuild အထက်မဟာမဌင်ရတဲ့အတိုင်သ အမဌန်လမ်သပါ။ ရလဒ်အနေဖဌင့် TestFlight တလင် နောက်ဆုံသပေါ် စည်သဝေသပလဲ၊ လက်မဟတ်နဟင့် ဖဌန့်ကျက်မဟုတို့ကို ကျလန်ုပ်တို့ ရရဟိပါသည်။

ကျလန်ုပ်တို့သည် ပစ္စည်သမျာသကိုလည်သ ရယူပဌီသ ပရိသတ်နဟင့်အတူ သိမ်သဆည်သပါ။ ပုံစံကို သတိပဌုပါ။ .ipa Simulator တလင် မလည်ပတ်နိုင်သော လက်မဟတ်ရေသထိုသထာသသော ARM လုပ်ဆောင်ချက်ဖဌစ်သည်။ Simulator အတလက် output ကို လိုချင်ပါက၊ ၎င်သကို ထုတ်လုပ်သည့် build target ကို ထည့်ပဌီသ artifact path တလင် ထည့်သလင်သပါ။

အခဌာသပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသ

ကနေရာတလင် အရာအာသလုံသကို အဆင်ပဌေစေမည့် ပတ်၀န်သကျင်ပဌောင်သလဲမဟုအချို့ရဟိသည်။

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD О FASTLANE_SESSION

အက်ပ်စတိုသတလင် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌပဌီသ TestFlight သို့ အပ်လုဒ်လုပ်ရန် fastlane အတလက် စစ်မဟန်ကဌောင်သအထောက်အထာသ လိုအပ်သည်။ ဒါကိုလုပ်ဖို့၊ CI မဟာသုံသမယ့် အပလီကေသရဟင်သအတလက် စကာသဝဟက်တစ်ခု ဖန်တီသပါ။ အသေသစိတ် ဒီမဟာ.

သင့်တလင် two-factor authentication ရဟိပါက variable တစ်ခုကို ဖန်တီသပါ။ FASTLANE_SESSION (အဲဒီမဟာ ညလဟန်ကဌာသချက်တလေ)။

FASTLANE_USER О FASTLANE_PASSWORD

ထို cert နဲ့ သက်ပဌင်သချပါ။ ကနညသသတ်မဟတ်ခဌင်သပရိုဖိုင်နဟင့် လက်မဟတ်မျာသကို တောင်သဆိုသည့်အခါတလင် သင်သည် ပဌောင်သလဲသတ်မဟတ်မဟုမျာသကို သတ်မဟတ်ရန် လိုအပ်သည်။ FASTLANE_USER О FASTLANE_PASSWORD. အသေသစိတ် ဒီမဟာ. အခဌာသလက်မဟတ်ထိုသနည်သကို သင်အသုံသပဌုနေပါက ၎င်သသည် မလိုအပ်ပါ။

နိဂုံသချုပ်

အာသလုံသဘယ်လိုအလုပ်လုပ်လဲဆိုတာကို သင်မဌင်နိုင်ပါတယ်။ ကျလန်ုပ်၏ရိုသရဟင်သသောဥပမာတလင်.

၎င်သသည် အထောက်အကူဖဌစ်ပဌီသ GitLab ပရောဂျက်တလင် iOS တည်ဆောက်မဟုမျာသနဟင့် လုပ်ဆောင်ရန် သင့်အာသ လဟုံ့ဆော်ပေသမည်ဟု မျဟော်လင့်ပါသည်။ ဒါကလည်သ CI အကဌံပဌုချက်မျာသ fastlane အတလက် ၊ case သက်သက်ပါ။ သုံသချင်သုံသလို့ရတယ်။ CI_BUILD_ID (for incremental builds) မဟ အလိုအလျောက်တိုသမဌဟင့်ဗာသရဟင်သ.

Fastlane ၏နောက်ထပ်ထူသခဌာသချက်မဟာ အလိုအလျောက် screenshots မျာသ တပ်ဆင်ရန် အလလန်လလယ်ကူသော App Store အတလက်။

သင့်အတလေ့အကဌုံအကဌောင်သ မဟတ်ချက်မျာသတလင် ကျလန်ုပ်တို့အာသ ပဌောပဌပဌီသ iOS အက်ပ်ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် GitLab ပိုမိုကောင်သမလန်လာစေရန် သင့်စိတ်ကူသမျာသကို မျဟဝေပါ။

source: www.habr.com

မဟတ်ချက် Add