fastlane ã䜿çšãã GitLab ã iOS ã¢ããªã±ãŒã·ã§ã³ãåéã眲åããApp Store ã«å ¬éããæ¹æ³ã
ç§ãã¡ã¯æè¿ã
ããã§åãäžããŸã
Apple Storeã®èšå®ã«ã€ããŠäžèš
ãã¹ãŠãçµã³ä»ããã«ã¯ãApp Store ã¢ããªãé åžèšŒææžãããããžã§ãã³ã° ãããã¡ã€ã«ãå¿ èŠã§ãã
ããã§æãé£ããã®ã¯ãApp Store ã§ã®çœ²åæš©éã®èšå®ã§ãã ããã«ã€ããŠã¯ãèªèº«ã§ç解ããŠããã ããã°å¹žãã§ãã åããŠã®æ¹ã«ã¯æ£ããæ¹åãžæ¡å ããŸãããApple 蚌ææžã®ç®¡çã®è€éãã«ã€ããŠã¯ããã§ã¯èª¬æããŸããããŸããApple 蚌ææžã¯åžžã«å€åããŠããŸãã ãã®æçš¿ã¯ãå§ããã®ã«åœ¹ç«ã¡ãŸãã
ç§ã®ã¢ããª
App Store Connect ã«ã¢ããªãå¿
èŠãªã®ã§ãæ§æçšã® ID ãå¿
èŠã§ã .xcodebuild
ã ãããã¡ã€ã«ãšã¢ããªã±ãŒã·ã§ã³ ID ã¯ãã³ãŒã ãã«ããäŸ¡æ Œãšå¯çšæ§ãããã³ãã¹ã ã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã«é
åžããããã® TestFlight æ§æãçµã¿åãããŸãã å
¬éãã¹ãã¯è¡ããªãã§ãã ãããå°èŠæš¡ãªã°ã«ãŒãããããã»ããã¢ãããç°¡åã§ãApple ããã®è¿œå ã®èš±å¯ãå¿
èŠãªãå Žåã¯ããã©ã€ããŒã ãã¹ãã§ååã§ãã
åæåãããã¡ã€ã«
ã¢ããªã®ã»ããã¢ããã«å ããŠãApple Developer ã³ã³ãœãŒã«ã® [蚌ææžãèå¥åããããã¡ã€ã«] ã»ã¯ã·ã§ã³ã§äœæããã iOS é åžããŒãšéçºããŒãå¿ èŠã§ãã ãããã®èšŒææžã¯ãã¹ãŠãããããžã§ãã³ã° ãããã¡ã€ã«ã«çµã¿åãããããšãã§ããŸãã
èªèšŒããããŠãŒã¶ãŒã¯èšŒææžãäœæã§ããå¿
èŠããããŸããããã§ãªãå Žåã¯ã次ã®æé ãå®è¡ããŸãã
ãã®ä»ã®ãªãã·ã§ã³
ãã®ç°¡åãªæ¹æ³ä»¥å€ã«ãã蚌ææžãšãããã¡ã€ã«ãæ§æããæ¹æ³ããããŸãã ãããã£ãŠããããŸã§ãšç°ãªãåãæ¹ãããå Žåã¯ãé©å¿ããå¿
èŠããããããããŸããã æãéèŠãªããšã¯ãèšå®ãå¿
èŠã§ãããšããããšã§ã .xcodebuild
ããã¯å¿
èŠãªãã¡ã€ã«ãæããŸããããŒãã§ãŒã³ã¯ãã©ã³ããŒãå®è¡ããŠããååã®ãŠãŒã¶ãŒããã«ã ã³ã³ãã¥ãŒã¿ãŒäžã§å©çšã§ããå¿
èŠããããŸãã ããžã¿ã«çœ²åã«ã¯ fastlane ã䜿çšããŠããŸããåé¡ãããå ŽåããŸãã¯è©³çŽ°ãç¥ãããå Žåã¯ã詳现ã確èªããŠãã ããã
ãã®äŸã§ã¯ã次ã®ã¢ãããŒãã䜿çšããŠããŸã
GitLab ãš fastlane ã®æºå
CIã©ã³ããŒã®æºå
ãã®ããŒã¿ããã¹ãŠåéããããMacOS ããã€ã¹äžã® GitLab ã©ã³ããŒã®æ§æã«é²ã¿ãŸãã æ®å¿µãªãããiOS ã¢ããªã¯ MacOS äžã§ããäœæã§ããŸããã ãããããã¹ãŠãå€ããå¯èœæ§ãããããããã®åéã§ã®é²æ©ãæåŸ
ããå Žåã¯ã次ã®ãããªãããžã§ã¯ãã«æ³šç®ããŠãã ããã
ã©ã³ããŒã®ã»ããã¢ããã¯éåžžã«ç°¡åã§ãã çŸåšã«åŸã£ãŠãã ãã
泚èšã ã©ã³ããŒã¯å®è¡å¯èœããã°ã©ã ã䜿çšããå¿
èŠããããŸã 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 ããŒãã§ãŒã³ã¯ãXcode ãæ§ç¯ããå¿ èŠãããããŒã«ã¢ã¯ã»ã¹ã§ããããã«ãã®ãã¹ãäžã§èšå®ããå¿ èŠããããŸãã ããããã¹ãããæãç°¡åãªæ¹æ³ã¯ããã«ããå®è¡ãããŠãŒã¶ãŒãšããŠãã°ã€ã³ããæåã§ãã«ãããŠã¿ãããšã§ãã ã·ã¹ãã ãããŒãã§ãŒã³ ã¢ã¯ã»ã¹ãèŠæ±ããå Žåã¯ãCI ã®åäœãåžžã«èš±å¯ãããéžæããŸãã æåã®ããã€ãã®ãã€ãã©ã€ã³ã芳å¯ããŠãããŒãã§ãŒã³ãèŠæ±ããªããªã£ãŠããããšã確èªããããšã¯äŸ¡å€ããããããããŸããã åé¡ã¯ãApple ãèªåã¢ãŒãã®äœ¿çšãç°¡åã«ããŠãããªãããšã§ãããäžåºŠäœ¿ãå§ããŠããŸãã°ããã¹ãŠããŸããããŸãã
ãã¡ã¹ãã¬ãŒã³ã®åæå
ãããžã§ã¯ã㧠fastlane ã䜿çšããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã fastlane init
ã ãã ãã©ããŒããŠãã ãã
ãããžã§ã¯ã ãã£ã¬ã¯ããªã§ã次ã®ã³ãã³ããå®è¡ããŸãã
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane ã¯åºæ¬æ§æãèŠæ±ãããããžã§ã¯ãå ã«æ¬¡ã® XNUMX ã€ã®ãã¡ã€ã«ãå«ã 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 ã«ã¢ããããŒããã XNUMX è¡ãäœæããŸãã å¿
èŠã«å¿ããŠããã®ããã»ã¹ãããŸããŸãªã¿ã¹ã¯ã«åå²ã§ããŸãã ããããã¹ãŠã®æäœ (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
ÐÑеПÑлОÑÐœÐŸïŒ clone
å®è¡äžã®ããã°ã©ã 㧠shell
ããã«ãããåã¢ã»ã³ããªã«ã¯ãªãŒã³ãªã¯ãŒã¯ã¹ããŒã¹ã確ä¿ãããåçŽã«åŒã³åºãããšãã§ããŸãã flappybuild
äžã§èŠãããã«ããã¡ã¹ãã¬ãŒã³ã ãã®çµæãTestFlight ã§ææ°ã®ã¢ã»ã³ããªã®ã¢ã»ã³ããªã眲åãå±éãååŸããŸãã
ãŸããã¢ãŒãã£ãã¡ã¯ããååŸããã¢ã»ã³ããªãšãšãã«ä¿åããŸãã 圢åŒã«æ³šæããŠãã ãã .ipa
眲åããã ARM å®è¡å¯èœãã¡ã€ã«ã§ãããã·ãã¥ã¬ãŒã¿ã§ã¯å®è¡ãããŸããã ã·ãã¥ã¬ãŒã¿ãŒã®åºåãå¿
èŠãªå Žåã¯ããããçæãããã«ã ã¿ãŒã²ãããè¿œå ããã¢ãŒãã£ãã¡ã¯ã ãã¹ã«å«ããŸãã
ãã®ä»ã®ç°å¢å€æ°
ããã«ã¯ããã¹ãŠãæ©èœãããããã®ç°å¢å€æ°ãããã€ããããŸãã
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
О FASTLANE_SESSION
App Storeã§èªèšŒããŠTestFlightã«ã¢ããããŒãããã«ã¯ãfastlaneã®èªèšŒãå¿
èŠã§ãã ãããè¡ãã«ã¯ãCI ã§äœ¿çšãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ã¯ãŒããäœæããŸãã 詳现
XNUMX èŠçŽ èªèšŒã䜿çšããŠããå Žåã¯ãå€æ°ãäœæããŸã FASTLANE_SESSION
ïŒããã«æ瀺ããããŸãïŒã
FASTLANE_USER
О FASTLANE_PASSWORD
ãã® FASTLANE_USER
О FASTLANE_PASSWORD
ã 詳现
çµè«
ãã¹ãŠãã©ã®ããã«æ©èœããããèŠãããšãã§ããŸã
ããã圹ã«ç«ã¡ãGitLab ãããžã§ã¯ã㧠iOS ãã«ããæ±ããã£ããã«ãªã£ãããšãé¡ã£ãŠããŸãã ããã«ããäžã€ãããŸã CI_BUILD_ID
(å¢åãã«ãã®å Žå)
fastlane ã®ãã XNUMX ã€ã®åªããæ©èœã¯ã
ã³ã¡ã³ãã§ããªãã®çµéšã«ã€ããŠæããŠãiOS ã¢ããªéçºã®ããã® GitLab ãæ¹åããããã®ã¢ã€ãã¢ãå ±æããŠãã ããã
åºæïŒ habr.com