GitLab සහ fastlane සමඟින් iOS යෙදුම් App Store වෙත ප්‍රකාශනය කිරීම

GitLab සහ fastlane සමඟින් iOS යෙදුම් App Store වෙත ප්‍රකාශනය කිරීම

Fastlane සමඟ GitLab iOS යෙදුම් එකතු කර, අත්සන් කරන සහ App Store වෙත ප්‍රකාශයට පත් කරන ආකාරය.

මෑතකදී අපට තිබුණා Android යෙදුමක් ඉක්මනින් ගොඩනඟා ධාවනය කරන්නේ කෙසේද යන්න ගැන පළ කරන්න GitLab සමඟ සහ ෆාස්ට්ලේන්. මෙන්න අපි iOS යෙදුමක් ගොඩනඟා ධාවනය කරන්නේ කෙසේද සහ එය TestFlight වෙත ප්‍රකාශ කරන්නේ කෙසේදැයි බලමු. එය කෙතරම් සිසිල්දැයි පරීක්ෂා කරන්න මම GitLab Web IDE සමඟ iPad Pro මත වෙනසක් කරමින් සිටිමි, මම එකලස් කර එය සංවර්ධනය කළ එම iPad Pro හි යෙදුමේ පරීක්ෂණ අනුවාදයට යාවත්කාලීනයක් ලබා ගන්නෙමි.

මෙන්න අපි ගන්නෙමු Swift හි සරල iOS යෙදුම, මම වීඩියෝව පටිගත කළේ කා සමඟද?

Apple Store වින්‍යාසය ගැන වචන කිහිපයක්

අපට සියල්ල එකට ගැටගැසීමට App Store යෙදුමක්, බෙදාහැරීමේ සහතික සහ ප්‍රතිපාදන පැතිකඩක් අවශ්‍ය වේ.

මෙහි ඇති වඩාත්ම දුෂ්කර දෙය වන්නේ App Store හි අත්සන් කිරීමේ අයිතිවාසිකම් සැකසීමයි. ඔබටම මෙය තේරුම් ගත හැකි යැයි මම බලාපොරොත්තු වෙමි. ඔබ අලුත් නම්, මම ඔබට නිවැරදි දිශාව පෙන්වා දෙන්නම්, නමුත් අපි මෙහි Apple සහතික කළමනාකරණය කිරීමේ සංකීර්ණතා ගැන කතා නොකරමු, ඒවා නිරන්තරයෙන් වෙනස් වේ. මෙම සටහන ඔබට ආරම්භ කිරීමට උපකාරී වනු ඇත.

මගේ යෙදුම්

ඔබට වින්‍යාස කිරීම සඳහා හැඳුනුම්පතක් ඇති බැවින් ඔබට App Store Connect තුළ යෙදුමක් අවශ්‍ය වේ .xcodebuild. පැතිකඩ සහ යෙදුම් ID පරිශීලකයින්ට පරීක්ෂණ යෙදුම් බෙදා හැරීම සඳහා කේත ගොඩනැගීම්, මිලකරණය සහ ලබා ගත හැකි බව සහ TestFlight වින්‍යාසය ඒකාබද්ධ කරයි. පොදු පරීක්ෂණ සිදු නොකරන්න, ඔබට කුඩා කණ්ඩායමක් තිබේ නම්, පහසු සැකසුම සහ Apple වෙතින් අමතර අවසර අවශ්‍ය නොවේ නම් පුද්ගලික පරීක්ෂණ ප්‍රමාණවත් වේ.

ආරම්භක පැතිකඩ

යෙදුම් සැකසුමට අමතරව, ඔබට Apple Developer කොන්සෝලයේ සහතික, හඳුනාගැනීම් සහ පැතිකඩ අංශය තුළ නිර්මාණය කරන ලද iOS බෙදාහැරීම් සහ සංවර්ධන යතුරු අවශ්‍ය වේ. මෙම සියලුම සහතික ප්‍රතිපාදන පැතිකඩකට ඒකාබද්ධ කළ හැකිය.

සත්‍යාපනය කරනු ලබන පරිශීලකයින්ට සහතික සෑදීමට හැකි විය යුතුය, එසේ නොමැති නම් පියවර සහතිකය සහ සුසුම්ලෑම ඔබ දෝෂයක් දකිනු ඇත.

වෙනත් විකල්ප

මෙම සරල ක්‍රමයට අමතරව, සහතික සහ පැතිකඩ වින්‍යාස කිරීමට වෙනත් ක්‍රම තිබේ. එබැවින්, ඔබ වෙනස් ආකාරයකින් වැඩ කරන්නේ නම්, ඔබට අනුවර්තනය වීමට සිදු විය හැකිය. වැදගත්ම දෙය නම් ඔබට වින්‍යාසය අවශ්‍ය වීමයි .xcodebuild, එය අවශ්‍ය ලිපිගොනු වෙත යොමු කරනු ඇති අතර, ධාවකය ක්‍රියාත්මක වන පරිශීලකයා සඳහා යතුරුපුවරුව ගොඩනැගීමේ පරිගණකයේ තිබිය යුතුය. ඩිජිටල් අත්සන සඳහා අපි ෆාස්ට්ලේන් භාවිතා කරන අතර ගැටළු තිබේ නම් හෝ ඔබට වැඩි විස්තර දැන ගැනීමට අවශ්‍ය නම්, ඒවායේ විස්තර පරීක්ෂා කරන්න ඩිජිටල් අත්සන් පිළිබඳ ලියකියවිලි.

මෙම උදාහරණයේදී මම ප්රවේශය භාවිතා කරමි සහතිකය සහ සුසුම්ලෑම, නමුත් සැබෑ භාවිතය සඳහා එය වඩාත් සුදුසු වේ තරගය.

GitLab සහ fastlane සූදානම් කරමින්

CI ධාවකය සූදානම් කිරීම

මෙම සියලු දත්ත එකතු කිරීමෙන් පසු, අපි MacOS උපාංගයේ GitLab ධාවකයේ වින්‍යාසය වෙත යමු. අවාසනාවකට, ඔබට iOS යෙදුම් සෑදිය හැක්කේ MacOS මත පමණි. නමුත් සෑම දෙයක්ම වෙනස් විය හැකි අතර, ඔබ මෙම ප්රදේශයේ ප්රගතිය අපේක්ෂා කරන්නේ නම්, වැනි ව්යාපෘති පිළිබඳව අවධානයෙන් සිටින්න 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

Xcode ගොඩනැගීමට අවශ්‍ය යතුරු වෙත ප්‍රවේශය සහිතව Apple Keychain මෙම ධාරකයෙහි වින්‍යාස කළ යුතුය. මෙය පරීක්‍ෂා කිරීමට ඇති පහසුම ක්‍රමය නම් ගොඩනැගීම ක්‍රියාත්මක කරන පරිශීලකයා ලෙස ලොග් වී එය අතින් තැනීමට උත්සාහ කිරීමයි. පද්ධතිය යතුරුපුවරු ප්‍රවේශය ඉල්ලා සිටින්නේ නම්, CI වැඩ කිරීමට සැමවිටම ඉඩ දෙන්න තෝරන්න. ඔවුන් තවදුරටත් යතුරුපුවරුව ඉල්ලන්නේ නැති බව සහතික කර ගැනීම සඳහා පළමු නල මාර්ග දෙක නැරඹීම වටී. කරදරය නම් Apple අපට ස්වයංක්‍රීය මාදිලිය භාවිතා කිරීම පහසු නොකරන නමුත් ඔබ එය ක්‍රියාත්මක කළ පසු සියල්ල හොඳින් සිදුවනු ඇත.

fastlane init

ව්‍යාපෘතියක ෆාස්ට්ලේන් භාවිතා කිරීමට, ධාවනය කරන්න fastlane init. අනුගමනය කරන්න fastlane ස්ථාපනය සහ ධාවනය සඳහා උපදෙස්, විශේෂයෙන් ගැන කොටසේ මැණික් ගොනුව, අපට ස්වයංක්‍රීය 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 හි ගොඩනඟන ලද විශේෂාංග බොහොමයක් භාවිතා කරමු, එබැවින් මෙහිද සියල්ල පැහැදිලිය. අපි සහතික ලබා ගන්නා, එකලස් කිරීම සහ එය TestFlight වෙත උඩුගත කරන එක් පේළියක් සාදන්නෙමු. අවශ්ය නම්, ඔබට මෙම ක්රියාවලිය විවිධ කාර්යයන් වලට බෙදිය හැකිය. මෙම සියලු මෙහෙයුම් (get_certificates, get_provisioning_profile, gym и upload_to_testflight) දැනටමත් fastlane හි ඇතුළත් කර ඇත.

ක්රියා 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 ඉහත පෙනෙන පරිදි fastlane. එහි ප්‍රතිඵලයක් වශයෙන්, අපි TestFlight හි නවතම එකලස් කිරීමේ එකලස් කිරීම, අත්සන සහ යෙදවීම ලබා ගනිමු.

අපි කෞතුක භාණ්ඩය ලබාගෙන එය එකලස් කිරීමත් සමඟ සුරකිමු. ආකෘතිය බව කරුණාවෙන් සලකන්න .ipa සිමියුලේටරය තුළ ක්‍රියාත්මක නොවන අත්සන් කරන ලද ARM ක්‍රියාත්මක කළ හැකි ය. ඔබට සිමියුලේටරය සඳහා ප්‍රතිදානය අවශ්‍ය නම්, එය නිපදවන ගොඩනැගීමේ ඉලක්කය එක් කරන්න, ඉන්පසු එය කෞතුක භාණ්ඩ මාර්ගයට ඇතුළත් කරන්න.

වෙනත් පරිසර විචල්යයන්

සෑම දෙයක්ම ක්‍රියාත්මක කරන පරිසර විචල්‍යයන් කිහිපයක් මෙහි ඇත.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

App Store තුළ සත්‍යාපනය කිරීමට සහ TestFlight වෙත උඩුගත කිරීමට fastlane සඳහා සත්‍යාපනය අවශ්‍ය වේ. මෙය සිදු කිරීම සඳහා, CI හි භාවිතා වන යෙදුම සඳහා මුරපදයක් සාදන්න. විස්තර මෙහි.

ඔබට ද්වි-සාධක සත්‍යාපනය තිබේ නම්, විචල්‍යයක් සාදන්න FASTLANE_SESSION (එහි උපදෙස්).

FASTLANE_USER и FASTLANE_PASSWORD

බව සහතිකය සහ සුසුම්ලෑම ආරම්භක පැතිකඩ සහ ඉල්ලීම මත සහතික ලෙස හැඳින්වේ, ඔබ විචල්‍යයන් සැකසිය යුතුය FASTLANE_USER и FASTLANE_PASSWORD. විස්තර මෙහි. ඔබ වෙනත් අත්සන් කිරීමේ ක්‍රමයක් භාවිතා කරන්නේ නම් මෙය අවශ්‍ය නොවේ.

අවසාන වශයෙන්

ඒ සියල්ල ක්‍රියාත්මක වන ආකාරය ඔබට දැක ගත හැකිය මගේ සරල උදාහරණයෙන්.

GitLab ව්‍යාපෘතියක iOS ගොඩනැගීම් සමඟ වැඩ කිරීමට මෙය ඔබට ප්‍රයෝජනවත් සහ ප්‍රබෝධයක් ලබා දෙනු ඇතැයි මම බලාපොරොත්තු වෙමි. මෙන්න තවත් එකක් CI ඉඟි ෆාස්ට්ලේන් සඳහා, නඩුවේදී. ඔබට භාවිතා කිරීමට අවශ්‍ය විය හැකිය CI_BUILD_ID (වර්ධක ගොඩනැගීම් සඳහා) වෙත ස්වයංක්රීයව වර්ධක අනුවාදය.

ෆාස්ට්ලේන් හි තවත් අපූරු ලක්ෂණයකි ස්වයංක්රීය තිරපිටපත් App Store සඳහා, පිහිටුවීමට ඉතා පහසු වේ.

ඔබගේ අත්දැකීම් ගැන අදහස් දැක්වීමේදී අපට කියන්න සහ iOS යෙදුම් සංවර්ධනය සඳහා GitLab වැඩිදියුණු කිරීම සඳහා ඔබේ අදහස් බෙදා ගන්න.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න