ααααααα GitLab ααΆαα½α fastlane αααααΌα α α»αα αααααααΆ αα·ααααααααΆααααααα·ααΈ iOS αα ααΆαα App Store α
ααααΈααααααΎαααΆα
αα
ααΈαααααΎαααΉααα
ααΆαααααΈαααΈα’αααΈααΆαααααααα ααΆαααααααα 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 start
Apple Keychain ααααΌαααααααααα ααΆαααααααααα ααΎαααΆαααΈααααααΆαα½αααΉαααΆαα αΌαααααΎααααα Xcode ααααΌαααΆαααΎααααΈαααααΎαα αααααααΆαααΆααααα½ααααα»αααΎααααΈααΆααααααααααΊααΎααααΈα αΌαααΆα’αααααααΎααααΆαααααααΉαααααΎαααΆαααΆαααααΆαααΆ α αΎαααααΆααΆααααααΎαααΆαααααα ααααα·αααΎααααααααααααΎαα»αααΆαα αΌαααααΎ keychain ααΌαααααΎαααΎα Always Allow αααααΆαα CI ααΎααααΈααααΎαααΆαα ααΆα’αΆα ααΆαααααααααα»αααΆαα αΌααα ααΎαααααααααα αΌααααααααααΌαααΈα ααΎααααΈααααΆααααΆαα½ααααα·αααΆααα»α keychain αααααα αααα αΆααΊααΆ Apple αα·αααααΎα±ααααΎαααΆααααα½αααααΎ Auto mode ααααα ααα»αααααα ααααααα’αααααααΎαααΆαααΆ α’αααΈαααΉαααααΎαααΆαααα’α
fastlane init
ααΎααααΈααααΎ fastlane αααα»ααααααα ααΌαααααΎαααΆα fastlane init
. ααααΆααααααααΎααΆα
αα αααα»αααααααααααααα’ααα ααΌαααααΎαααΆαααΆααααααααΆααΆαααααα
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
ΠΡΠ΅ΠΎΡΠ»ΠΈΡΠ½ΠΎ! 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 α αααααΊααΆαα½αααα CI_BUILD_ID
(αααααΆααααΆααααααΎααααααα) αα
α
ααα»α
αα·ααααα½αααααααα fastlane ααΊ
ααααΆααααΎααα αααα»αααα·αααααα’αααΈαααα·αααααααααα’ααα αα·αα ααααααααααα·αααααα’ααααααααΆααααΆααααααα’ GitLab αααααΆααααΆαα’αα·αααααααααααα·ααΈ iOS α
ααααα: www.habr.com