Fastlane: Seyir Kontrolünde iOS Otomasyonu
Yayınlanan: 2022-03-11iOS için yazılım yapmak, Objective-C veya Swift kodu yazmaktan daha fazlasıdır: UIKit'in nasıl çalıştığını, sertifikaların nasıl yapıldığını, uygulamanızı mağazada nasıl yayınlayacağınızı, uygulama incelemeleriyle nasıl başa çıkacağınızı ve daha fazlasını bilmeyi içerir. Bu sonsuz görev listesini yorucu buluyorsanız, iş akışınızda biraz otomasyon tam olarak ihtiyacınız olan şeydir.
Her dağıtımda size dakikalar hatta saatler kazandırmak için tasarlanmış araç olan Fastlane ile tanışın.
Fastlane, beta derlemelerini Crashlytics, TestFlight, App Store ve çok daha fazlasına gönderme sürecini otomatikleştirmenize yardımcı olur.
Bu makalede, iOS uygulama dağıtım iş akışınızı otomatikleştirmek için Fastlane'i nasıl kullanabileceğinizi öğreneceksiniz. Bu aracın iOS yönüne odaklanacak olsak da Fastlane, Android geliştirme otomasyonu için eşit derecede iyi çalışıyor.
Fastlane'e Başlarken
En kolay bulduğunuza bağlı olarak, aralarından seçim yapabileceğiniz birkaç yükleme yöntemi vardır. Homebrew'i yüklediyseniz ve yapılandırdıysanız, Fastlane'i yüklemek yalnızca bir komut alır:
brew cask install fastlane
Aksi takdirde, Fastlane Ruby tabanlı bir araç olduğundan gem
her zaman bir seçenektir:
sudo gem install fastlane -NV
Veya Fastlane'i her zaman resmi web sitesinden indirebilirsiniz.
Fastlane'i kurduktan sonra, proje dizininizde fastlane init
çalıştırın ve talimatları izleyin.
Dağıtım Otomasyonu
Fastlane yüklendiğinde, dağıtımınızı istediğiniz yere götürmek için yapmanız gerekenleri adım adım belirtmek için artık Ruby komut dosyaları yazabilirsiniz. Bu, eylemler, araçlar ve şeritler kullanılarak yapılır.
Fastlane Araçları, Eylemleri ve Eklentileri
Fastlane, özünde uygulamanızı oluşturmanıza yardımcı olacak araçlara sahip olarak çalışır. Oluşturma araçlarının yanı sıra Crashlytics, HockeyApp, TestFlight gibi hizmetlerle 170'in üzerinde yerleşik entegrasyon ve diğer hizmetlere ve daha fazlasına bağlanabilmeniz için üçüncü tarafların yaptığı ve yayınladığı daha fazla eklenti vardır.
Özünde, çeşitli görevleri yapmanıza izin veren ana araçlara sahip olursunuz: Otomatik ekran görüntüleri almaktan bunları çerçevelemeye ve mağazaya yüklemeye kadar, uygulamayı oluşturmadan önce tüm testlerinizi otomatik olarak çalıştırmanıza olanak tanır.
Eylemler, Fastlane'in sahip olduğu temel araçlardır ve eklentiler, Fastlane kurulumunuza üçüncü taraf eylemleri eklemenin bir yoludur.
şeritler
Fastlane, her seferinde aynı sonucu elde edebilmeniz için temelde bir eylemler veya eklentiler listesini sırayla gruplayan şeritler kullanır.
Bir şerit çalıştırırken, her eylem bir ortam değişkenini dışa aktarır ve aşağıdaki eylemler işlemin devam etmesini sağlamak için bu değişkenleri otomatik olarak alır. Örneğin, gym
eyleminin kullanılması, .ipa
dosyasının yolunun oluşturulmasına neden olur ve crashlytics
kullanılması, bu dosyayı beta hizmet dağıtım sistemine yüklemek için bu .ipa
konumuna erişir.
Fastlane'i iOS ile Kullanma
Çok basit bir uygulama isteyen yeni bir Toptal istemcisiyle başlıyorsunuz. Tasarım zaten yapıldı ve uygulama birkaç hafta içinde kodlanabilir. Bir sonraki adım, onu kodlamaya başlamaktır ve yineleme süreciniz sırasında, ilerlemenizi görebilmeleri ve işlerin nasıl yürüdüğü hakkında size geri bildirimde bulunabilmeleri için müşteriye birkaç haftada bir bir beta uygulaması göndereceksiniz.
İstemciye her beta sürümü gönderdiğinizde, temel bir kontrol listesinden geçeceksiniz: uygulamayı imzalamak, bir beta hizmetine yüklemek, ona yeni bir sürüm eklemek, vb. Buna yapmanız gerekenleri ekleyin. bir kez (her yıl): sertifikaları imzalama, anında iletme bildirim sertifikalarını imzalama (gerekirse) ve daha fazlası.
Fastlane ile bunların hepsi artık otomatik olarak gerçekleşebilir!
Crashlytics Beta'ya Gönderme
Örneğin, uygulamanızı Crashlytics Beta aracılığıyla paylaşmak için imzalama sertifikaları ve ön hazırlık profilleri oluşturmanız gerekir.
Fastlane, bir kez ayarladığınızda aşağıdakileri yapan match
adında bir eyleme sahiptir:
- Dağıtım imzalama sertifikaları oluşturun.
- Geçici bir ön hazırlık profili oluşturun (1 numaralı sertifikaya eklenir).
- #1 ve #2'deki sertifikayı ve profili OpenSSL kullanılarak şifrelenmiş bir Git deposuna kaydedin.
Kurulum basittir.
İlk olarak, başlamak için fastlane match init
çalıştırın ve Git deponuzu ayarladıktan sonra, geçici bir ön hazırlık profili almak için fastlane match adhoc
arayın veya bir App Store sertifikası almak için fastlane match appstore
çalıştırın.

match
kullanmanın avantajları, sertifikaları artık iptal etmek zorunda kalmadan bilgisayarlar arasında ve ekip arkadaşlarınız arasında çok kolay bir şekilde eşitleyebilmeniz ve elde ettiğiniz hızdır. Sadece fastlane match appstore
çalıştırmak size birkaç saniye içinde bir sertifika verir.
Pekala, şimdi ihtiyacımız olan sertifikalara ve provizyona sahibiz, hadi Crashlytics'e bir yayın yapalım.
Uygulamanızı Fabric's Crashlytics'e göndermek için tipik bir iş akışı aşağıdaki adımları içerir:
- Dağıtım imzalama sertifikalarını oluşturun.
- Geçici bir ön hazırlık profili oluşturun (1 numaralı sertifikaya eklenir).
- Uygulamanızı, #2'deki ön hazırlık profilini kullanacak şekilde ayarlayın.
- Uygulamanızı arşivleyin.
- Fabric'i açın ve uygulamayı beta test kullanıcılarına göndermek için adımları izleyin.
Fastlane, işi bununla değiştirir:
platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end
Şimdi, terminalinizden fastlane beta
çalıştırmak bu betiği başlatacak.
Bu, ilk olarak, imzalama sertifikaları oluşturmayı ve profilleri hazırlamayı işleyen bir eylem olan match
öğesini çağırır, ardından daha önce oluşturulan aynı sertifikaları ve profilleri kullanarak uygulamayı sizin için oluşturan ve paketleyen bir eylem olan gym
öğesini çağırır ve son olarak, crashlytics
. bu imzalı .ipa
alıp Crashlytics hizmetine yükleyeceğiz.
Bu adımların tümü, her zaman aynı sırada çağrılır ve sonuçta ortaya çıkan dosyayı daha öngörülebilir hale getirir ve hataları azaltır.
MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!
Bu, uygulamanızı Crashlytics'e göndermek için Fastlane'i nasıl çalıştıracağınıza ilişkin temel bir kurulumdu. Başka neleri otomatikleştirebiliriz?
Derleme Sürümlerini Artırma
Örneğin, her beta göndereceğimizde, derleme sürüm numarasını artırmak istediğimizi ayarlayabiliriz.
Bu, increment_build_number fastlane run increment_build_number
tarafından bir terminalden çağrılabilen veya beta şeridimizde satır içi olarak kullanılabilen increment_build_number
adlı bir eylem kullanılarak gerçekleştirilebilir:
platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end
Tebrikler! Artık, derleme sürüm numaranızı da artıran otomatik bir dağıtım komut dosyasına sahipsiniz. Tek uyarı, bu şeridi çağırdığınızda, projenizde (veya en azından yapı numarasını içerenlerde) dosyaların değiştirileceğidir.
Yine de bu değişikliği depoda yapmayı planlıyorsanız, bunun için bir eylem var: commit_version_bump
. Bu eylem, dosyaları yeni sürüm numarasıyla taahhüt eder.
platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
Bu, "Version Bump to 27" gibi bir taahhüt mesajı içeren dosyaları işleyecektir.
Crashlytics'ten TestFlight'a
Buraya kadar geldiyseniz, çok kısa bir sürede Crashlytics'e otomatik bir dağıtım yapabilirsiniz, bu da uzun vadede size sayısız saat kazandıracaktır. Bunun en iyi yanı, uygulamanızı bunun yerine TestFlight'a göndermek istiyorsanız, tek yapmanız gereken crashlytics
pilot
olarak değiştirmek.
Veya bunun için ayrı bir şerit oluşturabilirsiniz:
platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
iOS Otomasyonu Basitleştirildi
Fastlane basit ve kullanımı kolaydır. Ancak, sizi boşa harcayacağınız önemsiz şeyler ve saatlerce zaman harcamaktan kurtararak normal iOS geliştirme iş akışınıza inanılmaz bir değer katar.
Fastlane ile ilgili bu tanıtımı faydalı bulacağınızı umuyorum. Fastlane hakkında daha fazla bilgi edinmek için resmi belgelere, özellikle de mevcut ve sonraki iOS projeleriniz için neyi otomatikleştirebileceğiniz konusunda biraz ilham arıyorsanız eylem listesine göz atabilirsiniz.