Kiel GitLab kun fastlane kolektas, subskribas kaj publikigas iOS-aplikaĵojn al la App Store.
Ni lastatempe havis
Ĉi tie ni prenos
Kelkajn vortojn pri la agordo de Apple Store
Ni bezonos aplikaĵon de App Store, distribuajn atestilojn kaj provizantan profilon por kunligi ĉion.
La plej malfacila afero ĉi tie estas starigi subskribajn rajtojn en la App Store. Mi esperas, ke vi povas eltrovi ĉi tion mem. Se vi estas nova, mi indikas vin en la ĝustan direkton, sed ni ne parolos pri la komplikaĵoj de administrado de Apple-atestiloj ĉi tie, kaj ili konstante ŝanĝiĝas. Ĉi tiu afiŝo helpos vin komenci.
Miaj Aplikoj
Vi bezonas aplikaĵon en App Store Connect, do vi havas identigilon por agordo .xcodebuild
. La profilo kaj aplika ID kombinas kodkonstruaĵojn, prezojn kaj haveblecon, kaj TestFlight-agordon por distribui testajn aplikaĵojn al uzantoj. Ne faru publikajn provojn, privataj provoj sufiĉos, se vi havas malgrandan grupon, facilan aranĝon kaj ne bezonas pliajn permesojn de Apple.
Profilo pri komencado
Krom la agordo de la aplikaĵo, vi bezonas iOS-distribuajn kaj evoluajn ŝlosilojn kreitajn en la sekcio Atestiloj, Identigiloj kaj Profiloj de la konzolo de Apple Developer. Ĉiuj ĉi tiuj atestiloj povas esti kombinitaj en provizora profilo.
Uzantoj, kiuj estos aŭtentikigitaj, devas povi krei atestilojn, alie la paŝojn
aliaj opcioj
Krom ĉi tiu simpla metodo, ekzistas aliaj manieroj agordi atestilojn kaj profilojn. Do, se vi laboras malsame, vi eble devos adaptiĝi. La plej grava afero estas, ke vi bezonas agordon .xcodebuild
, kiu montros la necesajn dosierojn, kaj la ŝlosilĉeno devas esti havebla sur la konstrukomputilo por la uzanto sub kies nomo la kuristo kuras. Por cifereca subskribo ni uzas fastlane, kaj se estas problemoj aŭ vi volas scii pli, kontrolu iliajn detalojn
En ĉi tiu ekzemplo mi uzas la aliron
Preparante GitLab kaj fastlane
Preparante CI Runner
Kolektinte ĉiujn ĉi tiujn datumojn, ni pluiras al la agordo de la GitLab-kuristo sur la MacOS-aparato. Bedaŭrinde, vi nur povas fari iOS-aplikaĵojn en MacOS. Sed ĉio povas ŝanĝiĝi, kaj se vi atendas progreson en ĉi tiu areo, atentu projektojn kiel
Agordi la kuriston estas tre simpla. Sekvu fluon
Notu. La kuristo devas uzi plenumeblan programon shell
. Ĉi tio estas postulata por konstrui iOS sur macOS por funkcii rekte kiel uzanto prefere ol tra ujoj. Se vi uzas shell
, konstruaĵo kaj testado estas faritaj kiel la kuristo, rekte sur la konstrugastiganto. Ĝi ne estas tiel sekura kiel ujoj, do pli bone foliumi
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 devas esti agordita sur ĉi tiu gastiganto kun aliro al la ŝlosiloj, kiujn Xcode bezonas konstrui. La plej facila maniero testi ĉi tion estas ensaluti kiel la uzanto, kiu rulos la konstruon kaj provos konstrui ĝin permane. Se la sistemo petas ŝlosilĉenon aliron, elektu Ĉiam Permesi ke CI funkciu. Eble indas eniri kaj rigardi la unuajn duojn por certigi, ke ili ne plu petas la ŝlosilĉenon. La problemo estas, ke Apple ne faciligas al ni uzi Aŭtomatan reĝimon, sed post kiam vi ekfunkciigos, ĉio estos en ordo.
fastlane init
Por uzi fastlane en projekto, rulu fastlane init
. Nur sekvu
En via projekta dosierujo, rulu ĉi tiujn komandojn:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane petos bazan agordon kaj poste kreos fastlane-dosierujon en la projekto kun tri dosieroj:
1. fastlane/Appfile
Ĉi tie estas nenio komplika. Nur certigu, ke via Apple ID kaj App ID estas ĝustaj.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
difinas la konstruajn paŝojn. Ni uzas multajn enkonstruitajn funkciojn de fastlane, do ĉio estas klara ankaŭ ĉi tie. Ni kreas unu linion, kiu ricevas atestojn, plenumas la muntadon kaj alŝutas ĝin al TestFlight. Vi povas dividi ĉi tiun procezon en malsamajn taskojn se necese. Ĉiuj ĉi tiuj operacioj (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) jam estas inkluzivitaj en fastlane.
Agoj get_certificates
и get_provisioning_profile
rilata al la subskriba aliro
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
Ĉi tio estas laŭvola dosiero, sed mi kreis ĝin permane por ŝanĝi la defaŭltan eligdosierujon kaj meti la eligon en la nunan dosierujon. Ĉi tio simpligas CI. Se interesiĝas, legu pri gym
kaj ĝiaj parametroj en
https://docs.fastlane.tools/actions/gym/
Nia .gitlab-ci.yml
Do, ni havas CI-kuriston por la projekto kaj ni pretas testi la dukton. Ni vidu, kion ni havas .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
kun ekzekuta programo shell
, por ke ni havu puran laborspacon por ĉiu asembleo, kaj simple voku flappybuild
fastlane, kiel vidite supre. Kiel rezulto, ni ricevas la asembleon, subskribon kaj deplojon de la plej nova asembleo en TestFlight.
Ni ankaŭ ricevas la artefakton kaj konservas ĝin kun la aro. Bonvolu noti, ke la formato .ipa
estas subskribita ARM rulebla kiu ne funkcias en la simulilo. Se vi volas eliron por la simulilo, simple aldonu la konstruan celon, kiu produktas ĝin, kaj poste inkluzivu ĝin en la artefakto.
Aliaj mediaj variabloj
Estas kelkaj medio-variabloj ĉi tie, kiuj igas ĉion funkcii.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Aŭtentikigo por fastlane estas necesa por aŭtentikigi en la App Store kaj alŝuti al TestFlight. Por fari tion, kreu pasvorton por la aplikaĵo, kiu estos uzata en CI. Detaloj
Se vi havas dufaktoran aŭtentikigon, kreu variablon FASTLANE_SESSION
(instruoj tie).
FASTLANE_USER
и FASTLANE_PASSWORD
ke FASTLANE_USER
и FASTLANE_PASSWORD
. Detaloj
En konkludo
Vi povas vidi kiel ĉio funkcias
Mi esperas, ke ĉi tio estis helpema kaj inspiris vin labori kun iOS-konstruaĵoj en projekto GitLab. Jen alia CI_BUILD_ID
(por pliigaj konstruoj) al
Alia bonega trajto de fastlane estas
Rakontu al ni en la komentoj pri via sperto kaj dividu viajn ideojn por plibonigi GitLab por iOS-app-disvolviĝo.
fonto: www.habr.com