
ααααααα GitLab ααΆαα½α fastlane αααααΌα α α»αα αααααααΆ αα·ααααααααΆααααααα·ααΈ iOS αα ααΆαα App Store α
ααααΈααααααΎαααΆα ααΆαα½α GitLab αα·α . αα ααΈαααααΎαααΉαααΎαααΈαααααααααΎα αα·αααααΎαααΆααααααα·ααΈ iOS α αΎααααααααΆαααΆαα TestFlightα αα·αα·αααααΎαααΆααΎααΆα‘αΌαααα»ααααΆ αααα»αααααΆααα½αααααα»αααααΆ α αΎαααα½αααΆαααΆαα’αΆααααααα ααααααΆααααααααααααα·ααΈαα ααΎ iPad Pro ααΌα ααααΆααααααα»αααΆααααααΎαααΆα
αα ααΈαααααΎαααΉααα ααααααα»αααΆαααααΈααα’αΌααΆαα½αα
ααΆαααααΈαααΈα’αααΈααΆαααααααα ααΆαααααααα Apple Store
ααΎαααΉαααααΌαααΆααααααα·ααΈ App Store αα·ααααΆααααααα ααα αΆα αα·ααααααααααααΆαααααΆααααα α ααΎααααΈααααΆααα’αααΈαααααααααΆαααΆαα½αααααΆα
α’αααΈβαααβαα·ααΆαβαααα»αβαα βααΈαααβααΊβααΆαβαααααΎαβαα·αααα·βα α»αβαααααβαααα»αβ App Storeα αααα»ααααααΉαααΆα’αααα’αΆα αααααααΆαααΏααααααααααα½αα―αα ααααα·αααΎα’αααααααΈ αααα»αααΉαα ααα’α»ααααα αΆαα’ααααααα»ααα·ααα ααααΉαααααΌα ααα»ααααααΎαααΉααα·ααα·ααΆαα’αααΈααΆααααα»αααααααΆαααααΆαααααααααααα·ααααΆαααααα Apple αα ααΈααααα α αΎααα½ααααααα»αααααΆααααααΌαααΆαα·α αα α αααααΆααααααΉααα½αα’αααα αΆααααααΎαα
αααααα·ααΈαααααααα»α
α’αααααααΌαααΆααααααα·ααΈαα
αααα»α App Store Connect ααΌα
ααααα’αααααΆα ID αααααΆααααΆαααααααα
ααΆαααααααα .xcodebuild. αααααααα·ααΌα αα·αααααααααΆαααααααα·ααΈαα½ααααα
αΌαααααΆααΌαααΆααααααΎαααΌα ααααα αα·αααΆαα’αΆα
ααααΆα αα·αααΆαααααααα
ααΆαααααααα TestFlight αααααΆααα
ααα
αΆααααααα·ααΈααΆααααααααα’αααααααΎααααΆααα αα»αααααΎαααααααΆααΆααΆααα ααΆαααααΎαααααα―αααααΉααααααααααΆαα ααααα·αααΎα’αααααΆααααα»αααΌα
ααΆαααα‘αΎαααΆααααα½α α αΎααα·αααααΌαααΆαααΆαα’αα»ααααΆαααααααααΈ Appleα
αααααααααααΆαααΆαα αΆααααααΎα
ααααααααΈααΎααΆαααα‘αΎααααααα·ααΈ α’αααααααΌαααΆαααΆαα ααα αΆα αα·ααααααΉαα’αα·ααααααααααααααααααα·ααααα·ααΆα iOS ααααααααΎααα αααα»αααααα αα·ααααΆαααααα α’ααααααααΆα αα·ααααααααααα»αααΌαα’αααα’αα·αααααα Apple α αα·ααααΆααααααααΆααα’αααααα’αΆα ααααΌαααΆααααα αΌαααααΆαα αααα»ααααααααααααα
α’αααααααΎααααΆαααααααΉαααααΌαααΆααααααααααΆααααααΌαααα’αΆα αααααΎααα·ααααΆαααααα ααΎαα·αααΌα αααααα ααα αΆα α’αααααΉαααΎαααα α»αα
αααααΎααααααααα
αααα
ααΈαα·ααΈααΆαααααααΆααααααα ααΆααα·ααΈααααααααααΎααααΈααααααα
ααΆαααααααααα·ααααΆαααααα αα·αααααααα ααΌα
αααα ααααα·αααΎα’αααααααΎααΆααα»αααααΆ α’ααααααα ααααΆααααΌαααααααααα½αα α’αααΈαααααααΆαααααα»ααααααΊααΆα’αααααααΌαααΆαααΆαααααααα
ααΆαααααααα .xcodebuildαααααΉαα
ααα’α»ααα
α―αααΆαα
αΆαααΆα
α α αΎα keychain ααααΌαααααΆααα
ααΎαα»αααααΌααα build αααααΆααα’αααααααΎααααΆααααααααααααααααα’ααααααααΆα’ααααααααΆαα αααααΆααα αααααααΆααΈααΈαα ααΎαααααΎ fastlane α αΎαααααα·αααΎααΆααααα αΆ α¬α’αααα
ααααΉααααααα ααΌααα·αα·αααααΎαααααααΆααααα’α·αααααααΆα .
αααα»αα§ααΆα αααααααααα»ααααα»αααααΎαα·ααΈααΆααααα ααα»ααααβαααααΆααβααΆαβααααΎβααααΆααβαα·αβααααΆααβαααα ααβααΆβαααααα·ααβααΆα .
αααα»ααααα α GitLab αα·α fastlane
αααα»ααααα α CI Runner
αααααΆααααααΌααα·ααααααααΆααα’ααααα ααΎααααααα ααΆαααααααα ααΆαααααααααααααα·ααΈααα GitLab αα ααΎα§ααααα MacOS α ααΆα’αα»αα α’αααα’αΆα αααααΎααααααα·ααΈ iOS αα ααΎ MacOS ααα»αααααα ααα»ααααα’αααΈααααααααΆαα’αΆα ααααΆααααααΌαααΆα α αΎαααααα·αααΎα’αααααααΉαααΆααΉαααΆαααΆαααΈαα ααααΎααα αααα»ααααααααα ααΌαααΆαααΆαααααααααΌα ααΆ ΠΈ αα·ααα·α αα ααΆααααααααα»αααααααΎαα .
ααΆαααα‘αΎαα’αααααααααααΆααααΊααΆααααααΆααα ααααΎααΆααα αα α»αααααα .
α
αααΆαα α’ααααααααααΌαααααΎαααααα·ααΈαααα’αΆα
ααααα·ααααα·ααΆαα shellαααααααΌαααΆαααΆαααΆααααααΆααααΆααααααΎα iOS αα
αααα»α macOSααΎααααΈααααΎααΆααααααααΆααααΆα’αααααααΎααααΆαα ααΆααΆαααΆαααααα»αααΊαααα ααααα·αααΎα’αααααααΎ 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 startApple Keychain ααααΌαααααααααα ααΆαααααααααα ααΎαααΆαααΈααααααΆαα½αααΉαααΆαα αΌαααααΎααααα Xcode ααααΌαααΆαααΎααααΈαααααΎαα αααααααΆαααΆααααα½ααααα»αααΎααααΈααΆααααααααααΊααΎααααΈα αΌαααΆα’αααααααΎααααΆαααααααΉαααααΎαααΆαααΆαααααΆαααΆ α αΎαααααΆααΆααααααΎαααΆαααααα ααααα·αααΎααααααααααααΎαα»αααΆαα αΌαααααΎ keychain ααΌαααααΎαααΎα Always Allow αααααΆαα CI ααΎααααΈααααΎαααΆαα ααΆα’αΆα ααΆαααααααααα»αααΆαα αΌααα ααΎαααααααααα αΌααααααααααΌαααΈα ααΎααααΈααααΆααααΆαα½ααααα·αααΆααα»α keychain αααααα αααα αΆααΊααΆ Apple αα·αααααΎα±ααααΎαααΆααααα½αααααΎ Auto mode ααααα ααα»αααααα ααααααα’αααααααΎαααΆαααΆ α’αααΈαααΉαααααΎαααΆαααα’α
fastlane init
ααΎααααΈααααΎ fastlane αααα»ααααααα ααΌαααααΎαααΆα fastlane init. ααααΆααααααααΎααΆα ααΆαα·ααααα
αααα»ααααααα’αααΈ αααααΆαααααΎαααααΌαααΆαααΆαααΎαααααΎαααΆαααΏα αα·αα’αΆα
ααααΆααααααΆαααΆααααααααα CI ααααααααααααα·α
αα αααα»αααααααααααααα’ααα ααΌαααααΎαααΆαααΆααααααααΆααΆαααααα
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane initfastlane ααΉαααααΎαα»αααΆαααααααα ααΆααααααααααΌαααααΆα α αΎααααααΆαααααααααΎααα fastlane αα αααα»ααααααααααααΆαα―αααΆαααΈα
1. fastlane/Appfile
αα·αααΆαα’αααΈαααα»αααααΆααα ααΈαααααα ααααΆααααααααΌαααααΆααααΆ Apple ID αα·α App ID ααααα’αααααααΉαααααΌαα
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("your-email@your-domain.com") # Your Apple email address2. 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
end3. 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 fastlane ααΌα
αααααΆαααΎαααΆαααΎα ααΆαααααα ααΎαααα½αααΆαααΆααα½αααααα»α α αααααααΆ αα·αααΆαααΆαααααααΆαααααα·ααΆαα
α»αααααααααα’αααα
αααα»α TestFlight α
ααΎαααααα½αααΆαααααα»αα»ααΆα α αΎααααααΆαα»αααΆααΆαα½αααΆααα½αααααα»αααααΆα ααΌαα
αααΆαααΆαααααα .ipa ααΊααΆααΆαααααα·ααααα· ARM αααααΆαα
α»αα αααααααΆ ααααα·αααααΎαααΆααα
αααα»ααααΆαααΈααααααααααΎα ααααα·αααΎβα’αααβα
ααβααΆαβααααααβαααααΆααβαααααα·ααΈβαααααβααααΎ α’αααβααααΆααααβααααααβααααα
βαααααΎαβαααβαααααΎαβααΆ α αΎαβαααααΆααβααβαααα
αΌαβααΆβαααα»αβααααΌαβααααα»αα»ααΆαα
α’αααααα·ααααΆαααααααααα
ααΆαα’αααααα·ααααΆαααΈαααΈαα ααΈααα αααααααΎα²ααα’αααΈαααααΎαααΆαααΆαα
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION
ααΆααααααααααΆααααΆαααααΉαααααΌααααααΆαα fastlane ααΊαααααΌαα±αααααααααααΆαααα αααα»α App Store α αΎααααα αααα ααΆαα TestFlight α ααΎααααΈααααΎααΌα ααααααααΎαααΆααααααααΆαααααααΆαααααααα·ααΈαααααΉαααααΌαααΆαααααΎαα αααα»α CI α ααααααΆααααα’α·α .
ααααα·αααΎα’αααααΆαααΆααααααααααΆααααΈααααααΆ αααααΎαα’ααααα½αα FASTLANE_SESSION (ααΆαααααΆααα
ααΈααα) α
FASTLANE_USER ΠΈ FASTLANE_PASSWORD
ααΆ α α
ααΆααααααα
αΆααααααΎα αα·ααα·ααααΆααααααααΆαααΆαααααΎαα»α α’αααααααΌααααααα’ααα FASTLANE_USER ΠΈ FASTLANE_PASSWORD. ααααααΆααααα’α·α . ααααα·αα
αΆαααΆα
ααα ααααα·αααΎα’ααααααα»αααααΎαα·ααΈα
α»αα αααααααΆαααααα
αα αααα»αααα ααααΈααααα·ααααΆα
α’αααα’αΆα ααΎαααΈαααααααααΆααααΎαααΆαααΆααα’ααα .
αααα»ααααααΉαααΆααΆααΆααααααααα αα·ααααα»ααααα·αα’αααα±ααααααΎααΆαααΆαα½α iOS αααααΎααα
αααα»ααααααα GitLab α αααααΊααΆαα½αααα αααααΆαα fastlane ααααΆαααααααα»αααααΈα α’ααααααα ααααΆα
ααααααΎ CI_BUILD_ID (αααααΆααααΆααααααΎααααααα) αα
.
α ααα»α αα·ααααα½αααααααα fastlane ααΊ αααααΆαα App Store αααααΆαααΆαααΆααααα½ααααα»αααΆαααα‘αΎαα
ααααΆααααΎααα αααα»αααα·αααααα’αααΈαααα·αααααααααα’ααα αα·αα ααααααααααα·αααααα’ααααααααΆααααΆααααααα’ GitLab αααααΆααααΆαα’αα·αααααααααααα·ααΈ iOS α
ααααα: www.habr.com
