
Fastlane ile GitLab, iOS uygulamalarını nasıl toplar, imzalar ve App Store'da yayınlar.
Son zamanlarda yaşadık GitLab ile ve . Burada bir iOS uygulamasının nasıl oluşturulacağını, çalıştırılacağını ve TestFlight'ta nasıl yayınlanacağını göreceğiz. Ne kadar havalı olduğuna bakın , montajı alıyorum ve uygulamayı geliştirdiğim iPad Pro'da uygulamanın test sürümüne yönelik bir güncelleme alıyorum.
İşte alacağız , videoyu kiminle kaydettiğim.
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 bir hata göreceksiniz.
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 , ancak gerçek kullanım için muhtemelen daha uygundur .
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: и ve dahili görevimiz .
Koşucunun kurulumu çok basittir. Günceli takip et .
Not. Koşucu çalıştırılabilir bir program kullanmalıdır shellBu, iOS'u geliştirmek için gereklidir. macOSKonteynerler üzerinden değil, doğrudan kullanıcı olarak çalışmak. Eğer kullanıyorsanız shelloluş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 böylece hiçbir şeyi kaçırmazsın.
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 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 özellikle ilgili bölümde , çünkü otomatikleştirilmiş bir CI hattı aracılığıyla hızlı ve öngörülebilir bir lansmana ihtiyacımız var.
Proje dizininizde şu komutları çalıştırın:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane initfastlane 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("your-email@your-domain.com") # Your Apple email address2. 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 . eğer kullanıyorsanız ya da her neyse, değişiklik yapın.
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
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Все отлично! , stratejiyi kullan 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 istek üzerine başlatma profili ve sertifikalar olarak adlandırıldığında değişkenleri ayarlamanız gerekir FASTLANE_USER и FASTLANE_PASSWORD. Detaylar . Farklı bir imzalama yöntemi kullanıyorsanız bu gerekli değildir.
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 her ihtimale karşı fastlane için. Kullanmak isteyebilirsiniz CI_BUILD_ID (artımlı derlemeler için) .
Fastlane'in bir başka harika özelliği de Kurulumu çok kolay olan App Store için.
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
