Cumu GitLab cù fastlane raccoglie, firma è publica app iOS in l'App Store.
Avemu avutu pocu tempu
Quì avemu pigliatu
Uni pochi parolle nantu à a cunfigurazione di l'Apple Store
Avemu bisognu di una app in l'App Store, certificati di distribuzione, è un prufilu di pruvisione per ligà tuttu.
A cosa più difficiule quì hè di stallà i permessi di firma in l'App Store. Spergu chì pudete capisce questu per voi stessu. Sè vo site novu, vi indicheraghju in a direzzione ghjusta, ma ùn avemu micca da parlà di l'ins and outs di a gestione di i certificati Apple quì, è cambianu constantemente. Questu post vi aiuterà à principià.
My Apps
Avete bisognu di una app in App Store Connect per avè un ID per cunfigurà .xcodebuild
. U prufilu di l'app è l'ID combinanu custruzzioni di codice, prezzi è dispunibilità, è a cunfigurazione TestFlight per a distribuzione di app di prova à l'utilizatori. Ùn fate micca a prova publica, a prova privata hè abbastanza s'è vo avete un picculu gruppu, installazione simplice è ùn avete micca bisognu di permessi supplementari da Apple.
Pruvisioning Profile
In più di a cunfigurazione di l'app, avete bisognu di e chjavi di distribuzione è di sviluppu iOS creati in a sezione Certificati, Identificatori è Profili di a cunsola Apple Developer. Tutti questi certificati ponu esse cumminati in un prufilu di pruvisione.
L'utilizatori chì saranu autentificati necessitanu a capacità di creà certificati, altrimenti i passi
lucca ozzione
In più di stu metudu simplice, ci sò altre manere di stallà certificati è profili. Allora, sè vo travagliate in modu diversu, pudete avè da riajustà. A più impurtante, avete bisognu di una cunfigurazione .xcodebuild
, chì indicà à i schedarii necessarii, è u keychain deve esse dispunibule nantu à l'urdinatore di custruzzione per l'utilizatore sottu u nome chì u corridore corre. Utilizemu fastlane per a firma digitale, è se avete prublemi o vulete sapè di più, verificate i so dettagli
In questu esempiu aghju utilizatu l'approcciu
Preparazione di GitLab è fastlane
Préparation du CI Runner
Dopu avè cullatu tutte queste dati, andemu à a cunfigurazione di u corridore GitLab in un dispositivu MacOS. Sfurtunatamente, fà app iOS hè pussibule solu in MacOS. Ma tuttu pò cambià, è sè vo site aspittendu u prugressu in questa zona, seguite prughjetti cum'è
Stallà u corridore hè assai faciule. Segui l'aghjurnamentu
Nota. U corridore deve aduprà un prugramma esecutivu shell
. Hè ubligatoriu di custruisce iOS in macOS per travaglià direttamente cum'è utilizatore è micca attraversu cuntenituri. Sè vo aduprate shell
, a custruzione è a prova sò fatti cum'è l'utilizatore di corridore, ghjustu nantu à l'ospite di custruzzione. Ùn hè micca sicuru cum'è i cuntenituri, cusì hè megliu flip
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 deve esse stallatu nantu à questu òspite cù accessu à e chjave chì Xcode hà bisognu di custruisce. U modu più faciule per pruvà questu hè di login cum'è l'utilizatore chì eseguirà a custruzzione è pruvà à custruisce manualmente. Se u sistema dumanda l'accessu à u keychain, selezziunate "Permette sempre" per CI per travaglià. Puderia vale a pena entre è fighjulà u primu paru di pipeline per assicurà ch'elli ùn dumandanu più un keychain. U prublema hè chì Apple ùn rende micca fàciule per noi di travaglià cù u modu automaticu, ma quandu avete stallatu, tuttu sarà bè.
fastlane init
Per utilizà fastlane in un prughjettu, eseguite fastlane init
. Basta à seguità
In u cartulare di u prughjettu, eseguite questi cumandamenti:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane dumandà una cunfigurazione basica è poi creà un cartulare fastlane in u prugettu cù trè schedari:
1. fastlane/Appfile
Ùn ci hè nunda di complicatu quì. Solu verificate chì u vostru ID Apple è App ID sò curretti.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
definisce i passi di custruzzione. Utilizemu assai funzioni integrate di fastlane, cusì tuttu hè chjaru ancu quì. Creemu una linea chì riceve certificati, custruisce è carica in TestFlight. Pudete dividisce stu prucessu in diverse attività se necessariu. Tutte queste operazioniget_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) sò digià inclusi in fastlane.
Actions get_certificates
и get_provisioning_profile
assuciatu cù l'approcciu di firma
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
Questu hè un schedariu facultativu, ma l'aghju creatu manualmente per cambià u cartulare di output predeterminatu è mette l'output in u cartulare attuale. Questu simplifica CI. Sè interessatu, leghje circa gym
è i so paràmetri in
https://docs.fastlane.tools/actions/gym/
Nostru nostru .gitlab-ci.yml
Dunque, avemu un CI runner per u prugettu è simu pronti à pruvà u pipeline. Videmu ciò chì avemu .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
cù u prugramma in esecuzione shell
cusì chì avemu un spaziu di travagliu pulitu per ogni custruzzione, è solu chjamate flappybuild
fastlane cum'è vistu sopra. In u risultatu, avemu l'assemblea, a firma è a implementazione di l'ultima assemblea in TestFlight.
Avemu ancu ottene un artefattu è salvà cù l'assemblea. Nota chì u furmatu .ipa
hè un eseguibile ARM firmatu chì ùn funziona micca in u simulatore. Se vulete output di simulatore, aghjunghje solu a destinazione di custruzzione chì u produce, è poi include in u percorsu di l'artefact.
Altre variabili ambientali
Ci hè un paru di variabili ambientali quì chì tuttu funziona.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Per autentificà in l'App Store è carica in TestFlight, avete bisognu di l'autentificazione per fastlane. Per fà questu, crea una password di l'applicazione chì serà usata in CI. Dettagli
Se tenete l'autentificazione à dui fattori, creanu una variabile FASTLANE_SESSION
(istruzzioni quì).
FASTLANE_USER
и FASTLANE_PASSWORD
chì FASTLANE_USER
и FASTLANE_PASSWORD
. Dettagli
In cunclusioni
Pudete vede cumu tuttu funziona
Spergu chì questu hè statu utile è ispiratu à travaglià cù iOS builds in u prughjettu GitLab. Eccu un altru CI_BUILD_ID
(per build incrementali) à
Un'altra caratteristica interessante di fastlane hè
Parlaci di a vostra sperienza in i cumenti è sparte idee per migliurà GitLab per u sviluppu di l'app iOS.
Source: www.habr.com