Fastlane ile GitLab, iOS uygulamalarını nasıl toplar, imzalar ve App Store'da yayınlar.
Son zamanlarda yaşadık
İşte alacağız
Apple Store yapılandırması hakkında birkaç kelime
Her şeyi birbirine bağlamak için bir App Store uygulamasına, dağıtım sertifikalarına ve bir ön hazırlık profiline ihtiyacımız olacak.
Buradaki en zor şey App Store'da imzalama haklarını ayarlamaktır. Umarım bunu kendi başınıza çözebilirsiniz. Yeniyseniz sizi doğru yöne yönlendireceğim, ancak burada Apple sertifikalarını yönetmenin inceliklerinden bahsetmeyeceğiz ve bunlar sürekli değişiyor. Bu yazı başlamanıza yardımcı olacaktır.
Benim uygulamalarım
Yapılandırma için bir kimliğiniz olması için App Store Connect'te bir uygulamaya ihtiyacınız var .xcodebuild
. Profil ve uygulama kimliği, test uygulamalarını kullanıcılara dağıtmak için kod yapılarını, fiyatlandırmayı ve kullanılabilirliği ve TestFlight yapılandırmasını birleştirir. Herkese açık test yapmayın; küçük bir grubunuz varsa, kurulumu basitse ve Apple'dan ek izinlere ihtiyacınız yoksa özel testler yeterli olacaktır.
Başlatma profili
Uygulama kurulumuna ek olarak, Apple Geliştirici konsolunun Sertifikalar, Tanımlayıcılar ve Profiller bölümünde oluşturulmuş iOS dağıtım ve geliştirme anahtarlarına ihtiyacınız vardır. Bu sertifikaların tümü bir ön hazırlık profilinde birleştirilebilir.
Kimliği doğrulanacak kullanıcıların sertifika oluşturabilmesi gerekir, aksi takdirde adımlar
diğer seçenekler
Bu basit yöntemin yanı sıra sertifikaları ve profilleri yapılandırmanın başka yolları da vardır. Yani eğer farklı çalışırsanız uyum sağlamanız gerekebilir. En önemli şey yapılandırmaya ihtiyacınız olmasıdır .xcodebuild
, gerekli dosyalara işaret edecektir ve koşucunun adı altında çalıştığı kullanıcı için anahtar zincirinin derleme bilgisayarında mevcut olması gerekir. Dijital imza için fastlane kullanıyoruz ve sorun varsa veya daha fazlasını öğrenmek istiyorsanız ayrıntılarına göz atın
Bu örnekte yaklaşımı kullanıyorum
GitLab ve fastlane'i hazırlama
CI Runner'ı Hazırlama
Tüm bu verileri topladıktan sonra MacOS cihazında GitLab çalıştırıcısının konfigürasyonuna geçiyoruz. Ne yazık ki iOS uygulamalarını yalnızca MacOS'ta yapabilirsiniz. Ancak her şey değişebilir ve bu alanda ilerleme bekliyorsanız aşağıdaki gibi projeleri takip edin:
Koşucunun kurulumu çok basittir. Günceli takip et
Not. Koşucu çalıştırılabilir bir program kullanmalıdır shell
. Bu, kapsayıcılar yerine doğrudan kullanıcı olarak çalışacak şekilde macOS üzerinde iOS oluşturmak için gereklidir. Eğer kullanıyorsanız shell
oluşturma ve test etme, koşucu kullanıcı olarak doğrudan derleme ana bilgisayarında gerçekleştirilir. Konteynerler kadar güvenli değil, o yüzden göz atsanız iyi olur
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 Anahtar Zinciri, bu ana bilgisayarda Xcode'un oluşturması gereken anahtarlara erişim sağlayacak şekilde yapılandırılmalıdır. Bunu test etmenin en kolay yolu, derlemeyi çalıştıracak kullanıcı olarak oturum açmak ve onu manuel olarak oluşturmaya çalışmaktır. Sistem anahtarlık erişimi isterse CI'nın çalışması için Her Zaman İzin Ver'i seçin. Artık anahtarlığı istemeyeceklerinden emin olmak için içeri girip ilk birkaç boru hattını izlemek faydalı olabilir. Sorun şu ki, Apple Otomatik modu kullanmamızı kolaylaştırmıyor, ancak bir kez çalıştırdığınızda her şey yoluna girecek.
hızlı şerit başlangıcı
Fastlane'i bir projede kullanmak için çalıştırın fastlane init
. Sadece takip et
Proje dizininizde şu komutları çalıştırın:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane temel bir yapılandırma isteyecek ve ardından projede üç dosya içeren bir fastlane klasörü oluşturacaktır:
1. fastlane/Appfile
Burada karmaşık bir şey yok. Apple Kimliğinizin ve Uygulama Kimliğinizin doğru olduğundan emin olun.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
oluşturma adımlarını tanımlar. Fastlane'in birçok yerleşik özelliğini kullanıyoruz, dolayısıyla burada da her şey net. Sertifikaları alan, montajı gerçekleştiren ve TestFlight'a yükleyen bir satır oluşturuyoruz. Gerekirse bu süreci farklı görevlere bölebilirsiniz. Bütün bu işlemler (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) zaten fastlane'e dahil edilmiştir.
Etkinlik get_certificates
и get_provisioning_profile
imzalama yaklaşımıyla ilgili
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
Bu isteğe bağlı bir dosyadır, ancak varsayılan çıktı dizinini değiştirmek ve çıktıyı geçerli klasöre yerleştirmek için bunu manuel olarak oluşturdum. Bu CI'yi basitleştirir. Eğer ilgileniyorsanız, okuyun gym
ve parametreleri
https://docs.fastlane.tools/actions/gym/
Bizim .gitlab-ci.yml
Yani proje için bir CI çalıştırıcımız var ve boru hattını test etmeye hazırız. Bakalım elimizde neler var .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
yürütme programı ile shell
, böylece her montaj için temiz bir çalışma alanımız olur ve aramanız yeterlidir. flappybuild
fastlane, yukarıda görüldüğü gibi. Sonuç olarak TestFlight'ta en son montajın montajını, imzasını ve dağıtımını alıyoruz.
Ayrıca eseri alıp montajla birlikte kaydediyoruz. Lütfen formatın .ipa
simülatörde çalışmayan imzalı bir ARM yürütülebilir dosyasıdır. Simülatör için çıktı istiyorsanız, onu üreten derleme hedefini eklemeniz ve ardından bunu yapıt yoluna eklemeniz yeterlidir.
Diğer ortam değişkenleri
Burada her şeyin çalışmasını sağlayan birkaç ortam değişkeni var.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Fastlane kimlik doğrulaması, App Store'da kimlik doğrulaması yapmak ve TestFlight'a yüklemek için gereklidir. Bunu yapmak için CI'da kullanılacak uygulama için bir şifre oluşturun. Detaylar
İki faktörlü kimlik doğrulamanız varsa bir değişken oluşturun FASTLANE_SESSION
(talimatlar orada).
FASTLANE_USER
и FASTLANE_PASSWORD
O FASTLANE_USER
и FASTLANE_PASSWORD
. Detaylar
Sonuç olarak
Her şeyin nasıl çalıştığını görebilirsiniz
Umarım bu yararlı olmuştur ve bir GitLab projesinde iOS yapılarıyla çalışmanız için size ilham vermiştir. İşte bir tane daha CI_BUILD_ID
(artımlı derlemeler için)
Fastlane'in bir başka harika özelliği de
Deneyiminizle ilgili yorumlarınızı bize bildirin ve iOS uygulama geliştirme için GitLab'ı iyileştirmeye yönelik fikirlerinizi paylaşın.
Kaynak: habr.com