Fastlane — nedir, araçlar ve mobil uygulama derleme otomasyonu

Yazar: IT Sectr Yayınlanma: 2026-04-14 Okuma süresi: 10 dk

Fastlane, iOS ve Android uygulamalarının derleme, test ve yayınlama süreçlerini otomatikleştirmek için açık kaynaklı bir araçtır. İmzalama, derleme ve mağazaya yükleme için bir düzine komutu manuel olarak çalıştırmak yerine, geliştirici tüm süreci Fastfile'da tanımlar ve tek bir komutla çalıştırır. Fastlane Docs, 2025'ye göre, araç dünya çapında 1,5 milyondan fazla projede kullanılmaktadır. Fastlane, App Store Connect, Google Play Console ve kod imzalama sistemleriyle çalışmak için yardımcı programları bir araya getirir.

Önemli noktalar

  • Fastlane — iOS ve Android derleme ve dağıtımı için Open Source otomasyon aracı
  • Actions — App Store, Google Play, imzalama ve test için yerleşik komutlar
  • Lanes — Fastfile'da bir dizi action'ı birleştiren otomasyon senaryoları
  • Match — iOS için sertifika ve provisioning profile yönetim sistemi
  • Araçlar — scan (test), gym (derleme), deliver (yükleme), snapshot (ekran görüntüsü)

Fastlane Nedir ve Mobil Derlemeleri Nasıl Otomatikleştirir

Fastlane, Ruby ile yazılmış ve MIT lisansı altında dağıtılan bir mobil derleme otomasyon aracıdır. Mobil geliştiricinin rutin görevlerini otomatikleştirir: uygulama derleme, test çalıştırma, ekran görüntüsü oluşturma, kod imzalama ve ikili dosyaları App Store veya Google Play'e yükleme. 15–20 manuel komut yerine, geliştirici senaryo adıyla tek bir fastlane komutu çalıştırır.

Fastlane, Xcode yardımcı programları (xcodebuild, xcrun) ve Android SDK (gradlew, apksigner, bundletool) üzerinde bir sarmalayıcı olarak çalışır ve her iki platform için birleşik bir arayüz sağlar. Bu, aynı uygulamanın iOS ve Android sürümlerini yöneten ekipler için özellikle değerlidir — aynı Fastfile'lar, parametrelerde minimum farklılıkla her iki platform için derlemeleri tanımlayabilir.

GitHub'a göre, Fastlane 39.000'den fazla yıldıza sahiptir ve mobil geliştirmede otomasyon standardıdır. Araç, topluluk ve Google tarafından desteklenmektedir — Fastlane, Android uygulamalarını Google Play Console'a dağıtmak için önerilen yöntem olarak Firebase'e entegre edilmiştir.

Fastlane Mimarisi: Actions, Lanes ve Araçlar

Fastlane mimarisi üç düzey üzerine kurulmuştur: actions (temel komutlar), lanes (senaryolar) ve araçlar (özelleşmiş yardımcı programlar). Actions, Fastlane'in her biri belirli bir eylemi gerçekleştiren bireysel işlevleridir: ekran görüntüsü oluşturma, IPA derleme, TestFlight'a yükleme. Lanes, Fastfile'da tanımlanan sıralı bir senaryoda birden çok action'ı birleştirir.

Fastlane Actions

Actions, Fastlane'in yapı taşlarıdır. Her action parametre alır ve tek bir görevi yerine getirir. Örneğin, gym action'ı iOS uygulamasını derler, scan testleri çalıştırır, pilot derlemeyi TestFlight'a yükler. Fastlane'de 200'den fazla yerleşik action bulunur ve her birinin dokümantasyonuna fastlane action [ad] komutuyla erişilebilir.

Yerleşik actions yeterli değilse, geliştirici Ruby ile custom action oluşturabilir ve Fastfile'a ekleyebilir. Custom action'lar, Rubygems'de yayınlanan ve proje kökündeki FastfilePlugin dosyası aracılığıyla yüklenen Fastlane eklentileri aracılığıyla dağıtılır.

Lanes ve Bileşimleri

Lane, birden çok action'ı mantıksal bir sırayla birleştiren adlandırılmış bir otomasyon senaryosudur. Lane, diğer lane'leri (private lanes) çağırabilir, parametre iletebilir ve hataları işleyebilir. Bu, senaryo hiyerarşisi oluşturmayı sağlar: temel derleme lane'i, dağıtım lane'i, tam CI/CD döngüsü lane'i.

Temel Fastlane Araçları: scan, gym, match, deliver

Fastlane, her biri mobil otomasyonun belirli bir görevini çözen bir dizi özelleşmiş araç içerir. Araçlar, lane'ler içinde action olarak veya doğrudan komut satırından çalıştırılır. iOS ve Android için temel CI/CD ihtiyaçlarını karşılayan dört temel aracı inceleyelim.

AraçAmaçKomut
scaniOS simülatöründe Unit ve UI testlerini çalıştırmafastlane scan
gymiOS için IPA veya APP dosyası derlemefastlane gym
matchSertifikaların ve provisioning profile'ların Git üzerinden senkronizasyonufastlane match
deliverApp Store Connect'e ikili dosya ve meta veri yüklemefastlane deliver
snapshotFarklı cihazlarda otomatik ekran görüntüsü oluşturmafastlane snapshot

Scan, Xcode testlerinin çalıştırılmasını basitleştirir, uygun simülatörü otomatik olarak seçer ve raporu biçimlendirir. Gym, uygulamayı optimum derleme bayraklarıyla derler ve farklı derleme türleri (development, adhoc, appstore) için exportOptions.plist'i destekler. Deliver, yalnızca ikili dosyayı değil, aynı zamanda ekran görüntülerini, açıklamayı, sürümleri ve fiyatları tek bir meta veri dosyası aracılığıyla yüklemeye olanak tanır.

Match aracı özel ilgiyi hak ediyor — ekipte iOS sertifikalarının depolanması ve senkronizasyonu sorununu çözer. Match, sertifikaları ve provisioning profile'ları şifreleyerek bir Git deposunda saklar ve geliştiriciler fastlane match çalıştırdıklarında bunları otomatik olarak alır. Bu, her iş istasyonunun manuel yapılandırmasını ortadan kaldırır.

Snapshot: ekran görüntüsü oluşturma

Snapshot, farklı cihazlarda ve dillerde mobil uygulama ekran görüntülerini otomatik olarak oluşturmak için bir araçtır. Snapshot, iOS simülatörlerinde UI testleri çalıştırır ve testin her adımında ekran görüntüsü alır. Sonuçlar fastlane/screenshots dizinine kaydedilir ve deliver aracılığıyla App Store Connect'e yüklenebilir.

Android için screengrab, Android emülatörlerinde benzer bir işlev görür. Her iki araç da yerelleştirmeyi destekler — her dil için ekran görüntüleri oluşturulur, bu da çok dilli uygulama mağazalarında yayınlama için materyal hazırlığını basitleştirir.

iOS Uygulamaları İçin Fastlane Yapılandırması

iOS projeleri için Fastlane, Gemfile (fastlane gem'inin yüklenmesi) ve fastlane dizinindeki Fastfile aracılığıyla yapılandırılır. İlk yapılandırma, temel dizin yapısını oluşturan, App Store Connect verilerini isteyen ve ana lane'leri içeren bir Fastline şablonu üreten fastlane init komutuyla yapılır.

iOS için ana komut, sertifikaları ve provisioning profile'ları almak için önce çalıştırılması gereken fastlane match'tir. Başarılı imzalamadan sonra Fastlane, uygulamayı derleyebilir (gym), testleri çalıştırabilir (scan) ve ikili dosyayı yükleyebilir (pilot veya deliver).

ruby
# iOS uygulaması için Fastfile
default_platform(:ios)

lane :build do
  cocoapods
  scan(scheme: 'App', devices: ['iPhone 15'])
  gym(scheme: 'App', export_method: 'app-store')
end

lane :deploy do
  match(type: 'appstore')
  build
  pilot(skip_waiting_for_build_processing: true)
  slack(message: 'Yeni sürüm TestFlight'a yüklendi')
end

TestFlight ile çalışmak için pilot action'ını kullanın — IPA'yı yükler ve testçileri yönetir. Fastlane, upload_to_testflight'ı (pilot'un eşanlamlısı) destekler ve Apple'ın derlemeyi işlemesini bekleme süresini (5 ila 30 dakika) otomatik olarak yönetir.

Android Uygulamaları İçin Fastlane Yapılandırması

Android projeleri için Fastlane benzer şekilde yapılandırılır, ancak Xcode araçları yerine Gradle ve Android SDK kullanılır. Android için Fastlane, APK ve AAB derlemesini, apksigner veya jarsigner aracılığıyla imzalamayı, enstrümantasyon testlerini çalıştırmayı ve Supply action'ı aracılığıyla Google Play Console'a yüklemeyi destekler.

Temel fark, Android derlemesinin match aracılığıyla sertifika yönetimi gerektirmemesidir (Android imzalaması ayrı olarak saklanan Keystore üzerinden yönetilir). Android için Fastlane, herhangi bir Gradle görevini çalıştırmak için gradle action'ını ve Google Play ile çalışmak için supply action'ını kullanır.

ruby
# Android uygulaması için Fastfile
default_platform(:android)

lane :build do
  gradle(task: 'clean assembleRelease')
  gradle(task: 'testReleaseUnitTest')
end

lane :deploy do
  build
  supply(
    track: 'internal',
    aab: 'app/build/outputs/bundle/release/app-release.aab'
  )
end

Google Play Console ile çalışmak için Google Play API'sine erişimi olan bir Google Cloud hizmet hesabı gerekir. Fastlane, hizmet hesabının JSON anahtarını SUPPLY_JSON_KEY ortam değişkeni veya supply action'ındaki json_key parametresi aracılığıyla kabul eder. Yayın track'i internal, alpha, beta veya production olabilir.

Fastlane'in CI/CD Sistemleriyle Entegrasyonu

Fastlane, Ruby betiklerini çalıştırabilen herhangi bir CI/CD sistemiyle entegre olabilir: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise ve CircleCI. Entegrasyon, fastlane gem'inin yüklenmesi ve pipeline'ın script aşamasında fastlane [lane_name] komutunun çalıştırılmasından ibarettir.

CI/CD için hassas verileri depolamak üzere ortam değişkenlerinin yapılandırılması önemlidir: MATCH_PASSWORD (sertifika şifreleme şifresi), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (Apple ID şifresi). Travis CI'da değişkenler travis encrypt ile şifrelenir; GitHub Actions'ta depo Secrets'ı aracılığıyla yönetilir.

Önerilen uygulama, sertifika deposunda yanlışlıkla değişiklik yapılmasını önlemek için CI/CD'de fastlane match'i readonly bayrağıyla kullanmaktır. Android için, Base64 kodlu ve bir ortam değişkeninde saklanan, before_install aşamasında çözülen ve geçici bir dosyaya kaydedilen Keystore'u kullanın.

Fastlane Match: Sertifika ve Profil Yönetimi

Fastlane Match, iOS sertifikalarını ve provisioning profile'larını yönetmeyi otomatikleştiren bir araçtır — ekipler için Fastlane'in en değerli özelliklerinden biridir. Match, tüm sertifikaları ve profilleri depolayan şifrelenmiş bir Git deposu oluşturur (veya mevcut olanı kullanır) ve bunları geliştiriciler ile CI/CD sunucuları arasında senkronize eder.

Match, beş profil türünü destekler: development, adhoc, appstore, enterprise ve developer_id. Her tür, depo içinde ayrı bir dizinde saklanır. fastlane match development komutu, geliştirme sertifikalarını yerel makineye yüklerken, fastlane match appstore CI derlemeleri için App Store profillerini yükler.

ruby
# Fastfile'da Match Kullanımı
lane :setup_signing do
  match(
    type: 'appstore',
    readonly: true,
    git_branch: 'main'
  )
end

lane :update_profiles do
  match(
    type: 'development',
    force: true,
    app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
  )
end

Match'in güvenliği, Git'e commit'ten önce tüm dosyaların şifrelenmesiyle sağlanır. Şifreleme şifresi MATCH_PASSWORD ortam değişkeni aracılığıyla ayarlanır ve tüm ekip üyeleri için aynı olmalıdır. Match, şifreleme için OpenSSL kullanır ve şifreyi depoda düz metin olarak saklamaz.

Sıkça sorulan sorular

Mobil geliştirmede Fastlane nedir?

Fastlane, iOS ve Android uygulamaları için bir Open Source otomasyon aracıdır. Tek bir yapılandırma dosyası Fastfile ve bir dizi yerleşik araç aracılığıyla derleme, test, kod imzalama ve App Store ile Google Play'e dağıtımı otomatikleştirir.

Fastlane hangi araçları içerir?

Temel Fastlane araçları: scan (test), gym (iOS derleme), match (sertifikalar), deliver (App Store), pilot (TestFlight), snapshot (ekran görüntüleri), supply (Google Play) ve frameit (ekran görüntüsü çerçeveleri). Her araç, bir lane içinde action olarak veya komut satırından kullanılabilir.

iOS uygulaması için Fastlane nasıl yapılandırılır?

gem fastlane'i yükleyin, proje kökünde fastlane init komutunu çalıştırın. Derleme (gym) ve test (scan) için lane'lerle Fastfile'ı yapılandırın. Git deposu üzerinden sertifika yönetimi için Match'i yapılandırın. App Store Connect'e yükleme için pilot veya deliver ile bir dağıtım lane'i ekleyin.

Android uygulaması için Fastlane nasıl yapılandırılır?

Paket adını belirterek fastlane init komutunu çalıştırın. Gradle görevlerini (assembleRelease, testReleaseUnitTest) çalıştırmak için gradle action'ını kullanın. Ortam değişkenleri aracılığıyla Keystore'u yapılandırın. AAB veya APK'yı Google Play Console'da istenen track'e yüklemek için supply action'ını kullanın.

Fastlane CI/CD sistemlerine nasıl entegre edilir?

CI/CD sunucusuna gem fastlane'i yükleyin ve pipeline'ın script aşamasına fastlane [lane_name] komutunu ekleyin. FASTLANE_USER, FASTLANE_PASSWORD ve MATCH_PASSWORD ortam değişkenlerini CI/CD sırlarında yapılandırın. Sertifikalarda yanlışlıkla değişiklik yapılmasını önlemek için CI'da match readonly kullanın.

Özet

  • Fastlane — iOS ve Android desteğiyle mobil derleme otomasyonu için Open Source araç
  • Actions — Derleme, test, imzalama ve dağıtım için temel komutlar (200'den fazla yerleşik)
  • Lanes — Birden çok action'ı sıralı bir CI/CD sürecinde birleştiren Fastfile senaryoları
  • Match — Şifrelenmiş Git deposu aracılığıyla iOS sertifika yönetim sistemi
  • iOS: scan test, gym derleme, pilot TestFlight
  • Android: gradle derleme, supply Google Play
  • Fastlane, Jenkins, Travis CI, GitHub Actions ve diğer CI/CD platformlarıyla entegre olur

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun