Fastlane: nedir, derleme otomasyonu ve yayınlama

Yazar: IT Sectr Yayınlanma: 2026-02-13 Okuma süresi: 10 dk

Fastlane, iOS ve Android için mobil uygulamaların derlenmesini ve yayınlanmasını otomatikleştiren bir araçtır. Fastlane, kod imzalama, derleme, test çalıştırma, ekran görüntüsü oluşturma ve App Store Connect ile Google Play Console'a yükleme işlemlerini yönetir. Mobil geliştirmede CI/CD için fiili standarttır.

Ana çıkarımlar

  • Fastlane otomatikleştirir tüm mobil sürüm pipeline'ını: tek bir komutla derleme, test, imzalama ve yayınlama
  • Fastfile, lanes — adlandırılmış otomasyon senaryoları — tanımlayan bir Ruby yapılandırma dosyasıdır
  • iOS ve Android desteği — Fastlane, Xcode, Gradle, App Store Connect, Google Play, TestFlight ve Firebase ile çalışır
  • match ve sigh — iOS geliştirme için sertifika ve provisioning profile yönetimi
  • CI/CD entegrasyonu — Fastlane, GitHub Actions, GitLab CI, Bitrise, Jenkins ve CircleCI'ye entegre olur

Fastlane — nedir

Fastlane, mobil geliştirmenin rutin görevlerini otomatikleştiren açık kaynaklı bir araçtır: uygulamayı derleme, testleri çalıştırma, ekran görüntüleri oluşturma, sertifikaları yönetme ve TestFlight, App Store ile Google Play'e derleme yükleme. Fastlane Ruby ile yazılmıştır ve gem install fastlane komutuyla RubyGems üzerinden dağıtılır.

Fastlane, 2015 yılında bir iOS aracı olarak ortaya çıktı ancak hızla Android'e genişledi. Bugün, aksiyonlar adı verilen düzinelerce yerleşik komuttan oluşan bir ekosistemdir ve bunlar lanes adı verilen senaryolarda birleştirilebilir. Her lane belirli bir görevi yerine getirir: örneğin, build_release sürüm sürümünü derler ve deploy_beta derlemeyi TestFlight'a yükler.

Fastlane, Uber, Airbnb, Snapchat, Twitter ve Shopify gibi şirketler tarafından kullanılmaktadır. 2024 anketine göre, iOS geliştiricilerinin %60'ından fazlası projelerinde Fastlane kullanmaktadır. Araç, hem yerel çalıştırmayı hem de bulut CI sistemleriyle entegrasyonu destekleyerek mobil CI/CD için fiili standart haline gelmiştir.

ruby
# Fastlane kurulumu
sudo gem install fastlane -NV

# Projede başlatma
fastlane init

Başlatma sonrasında Fastlane, üç dosyayla birlikte bir fastlane/ dizini oluşturur: Fastfile (senaryolar), Appfile (uygulama ayarları) ve Matchfile (sertifika ayarları). Bu yapı her iki platformda da — iOS ve Android — aynı kalır.

Fastfile ve lanes

Fastlane'in ana yapılandırma dosyası Fastfile'dır. Proje kökündeki fastlane/ dizininde bulunur. Fastfile Ruby ile yazılır: her lane, bir dizi aksiyon içeren adlandırılmış bir bloktur. Bir lane parametre alabilir, diğer lane'leri çağırabilir ve değer döndürebilir.

ruby
# fastlane/Fastfile — iOS örneği
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

Her lane, fastlane ios beta veya fastlane ios release komutuyla çalıştırılır. Fastfile, değişkenleri, koşulları, döngüleri ve harici betik çağrılarını destekler — tam teşekküllü bir Ruby dosyasıdır. Geliştiriciler, private_lane (yerel yöntemler) ve diğer Fastfile'lardan import yoluyla kodu yeniden kullanabilir.

Fastlane, çoğu görev için 200'den fazla yerleşik aksiyon sağlar. Gerekli aksiyon yoksa, Ruby'de kendi aksiyonunuzu yazabilir veya sh("...") ile bir shell komutu çağırabilirsiniz. Aksiyonlar parametre alabilir — derleme ayarları, yollar, erişim token'ları — ve sonraki adımlarda kullanılmak üzere sonuç döndürebilir.

iOS derleme otomasyonu

iOS için Fastlane üç temel sorunu çözer: sertifika ve provisioning profile yönetimi, Xcode üzerinden IPA derleme ve App Store Connect ile TestFlight'a yayınlama. Bu görevlerin her biri ayrı bir aksiyon tarafından karşılanır.

match, sertifika yönetimi için bir aksiyondur. Tüm sertifikaları ve provisioning profillerini şifrelenmiş bir Git deposunda saklar. Her geliştirici ve CI sunucusu aynı dosya kümesini kullanır, bu da çakışmaları ve süresi dolmuş sertifika sorunlarını ortadan kaldırır. Match, yeni cihazlar eklendiğinde profilleri otomatik olarak günceller.

sigh, Apple Developer Portal üzerinden bir provisioning profile oluşturur ve indirir. Belirli bir tür için (development, ad-hoc veya appstore) hızlıca bir profil gerektiğinde kullanılır.

gym, IPA'yı derler. Gym, xcodebuild'i optimum parametrelerle sarar, şemayı, yapılandırmayı, dışa aktarma seçeneklerini otomatik olarak seçer ve imzalı bir IPA oluşturur. Örnek: gym(scheme: "MyApp", export_method: "app-store").

pilot, TestFlight'ı yönetir. Derlemeyi yükler, testçiler ekler ve inceleme durumunu takip eder. deliver, meta veriler, ekran görüntüleri, fiyatlandırma ve sürümleme dahil olmak üzere tam App Store yayınlamasını halleder.

ruby
# iOS uygulaması derleme ve yayınlama
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

App Store Connect ile çalışmak için erişim token'ları gerekir. Fastlane iki kimlik doğrulama yöntemini destekler: App Store Connect API Anahtarı (önerilen) ve iki faktörlü kimlik doğrulamalı Apple ID. API anahtarları, etkileşimli şifre girişi gerektirmediği için CI/CD için daha uygundur.

aksiyonAmaçManuel karşılık
matchSertifika ve profil yönetimiApple Developer Portal
sighProvisioning profile oluşturmaXcode + Developer Portal
gymIPA derlemexcodebuild + xcrun
pilotTestFlight yüklemeXcode Organizer
deliverApp Store yayınlamaApp Store Connect Web
scanUI test çalıştırmaxcodebuild test

Android derleme otomasyonu

Android'de Fastlane, Gradle ile derleme, APK ve AAB imzalama, Google Play Console'a yükleme ve Firebase App Distribution'ı otomatikleştirir.

gradle, Android derlemeleri için ana aksiyondur. Gerekli görevlerle Gradle wrapper'ını çağırır: gradle(task: "assembleRelease") veya AAB için gradle(task: "bundleRelease"). Bayraklar, ortam değişkenleri ve gradle.properties yolunu iletebilirsiniz.

supply, APK veya AAB'yi Google Play Console'a yükler. Supply, sürümleri, track'leri (internal, alpha, beta, production), sürüm notlarını, fiyatlandırmayı ve ülke dağıtımını yönetir. Örnek: supply(track: "beta", release_status: "completed").

screengrab, Google Play için ekran görüntüleri oluşturur. Farklı cihazlarda ve dillerde uygulamanın ekran görüntülerini yakalayan enstrümantasyon testlerini çalıştırır. Sonuçtaki ekran görüntüleri supply aracılığıyla yüklenir.

ruby
# Android uygulaması derleme ve yayınlama
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
aksiyonAmaçManuel karşılık
gradleGradle ile derleme./gradlew assembleRelease
supplyGoogle Play'e yüklemeGoogle Play Console Web
screengrabEkran görüntüsü oluşturmaManuel ekran görüntüsü + ImageMagick
firebase_app_distributionFirebase dağıtımıFirebase Console Upload

CI/CD entegrasyonu

Fastlane, CI/CD pipeline'larında çalışmak üzere tasarlanmıştır. Etkileşimsiz modu, ortam değişkenlerini ve derleme yapıtlarını doğru şekilde işler. Aşağıda popüler CI sistemleriyle entegrasyon örnekleri verilmiştir.

GitHub Actions'ta Fastlane, bir Ruby betiği olarak çalıştırılır. Tipik bir iş akışı: Ruby ve Fastlane'i kurun, anahtarları yapılandırın (secrets aracılığıyla sertifikalar, API token'ları) ve lane'i çalıştırın. iOS bir macOS runner gerektirir; Android ubuntu-latest üzerinde çalışır.

GitLab CI'da Fastlane, .gitlab-ci.yml içinde benzer bir kurulumla kullanılır: bağımlılıkları kurun, fastlane'i çalıştırın ve yapıtları iletin. GitLab CI, macOS ve Linux runner'larını destekler.

Bitrise — mobil uygulamalar için özelleşmiş bir CI/CD — yerleşik Fastlane desteğine sahiptir. Bitrise Workflow, Fastlane Step'i çağırabilir veya fastlane ile özel betikler çalıştırabilir. Bitrise, sertifikaları Kod İmzalama yöneticisi aracılığıyla yönetir.

ruby
# Koşullu test çalıştırma ile CI/CD için Fastfile
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

CI/CD entegrasyonunun önemli bir yönü sırların saklanmasıdır. Fastlane, dotenv aracılığıyla .env dosyasını ve ortam değişkenlerini kullanır. iOS için kritik değişkenler: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Android için: SUPPLY_JSON_KEY_DATA — Google Play hizmet hesabının içeriği.

Popüler Fastlane aksiyonları

Fastlane, 200'den fazla yerleşik aksiyon içerir. Aşağıda, platformları ve açıklamalarıyla birlikte en popüler olanların bir özeti bulunmaktadır.

aksiyonPlatformAçıklama
gymiOSOptimize edilmiş xcodebuild parametreleriyle IPA derleme
matchiOSSertifikaları ve provisioning profillerini Git ile senkronize etme
pilotiOSDerlemeyi TestFlight'a yükleme ve testçileri yönetme
deliveriOSMeta verilerle uygulamayı App Store'da yayınlama
scaniOSRapor oluşturma ile birim ve UI testlerini çalıştırma
gradleAndroidGradle görevlerini çalıştırma: assemble, bundle, test
supplyAndroidAPK ve AAB'yi Google Play Console'a yükleme
screengrabAndroidGoogle Play için otomatik ekran görüntüleri
firebase_app_distributionAndroidFirebase aracılığıyla derleme dağıtma
snapshotiOSApp Store için simülatörlerde otomatik ekran görüntüleri
increment_build_numberiOSXcode projesinde derleme numarasını otomatik artırma
appcenter_uploadHer ikisiDerlemeyi App Center'a yükleme

Gerekli aksiyonu bulmak için fastlane action [ad] komutunu kullanın; bu komut belgeleri, parametreleri ve örnekleri görüntüler. Tam liste yerel olarak mevcuttur: fastlane actions.

Fastlane ayrıca eklentileri de destekler — yeni aksiyonlar ekleyen topluluk uzantıları. Eklentiler fastlane add_plugin [ad] ile kurulur ve RubyGems kayıtlarında bulunur. Popüler eklenti örnekleri: fastlane-plugin-versioning (sürüm yönetimi), fastlane-plugin-sentry (hata ayıklama sembollerini Sentry'ye yükleme), fastlane-plugin-teams (Microsoft Teams'de bildirimler).

Sıkça Sorulan Sorular

Fastlane nedir ve neden gereklidir?

Fastlane, mobil uygulamaların derlenmesini ve yayınlanmasını otomatikleştiren bir araçtır. Manuel işlemleri — derleme, kod imzalama, mağazalara yükleme — tek bir komutla değiştirir. Fastlane, yayınlama süresini saatlerden dakikalara indirir ve yayınlama sırasında insan hatalarını ortadan kaldırır.

Fastlane'i yalnızca Android veya yalnızca iOS için kullanabilir miyim?

Evet. Fastlane her iki platformu da bağımsız olarak destekler. iOS macOS gerektirirken, Android yalnızca Linux gerektirir. Tek bir Fastfile'da platforma göre lane'leri ayırabilirsiniz: platform :ios do ... end ve platform :android do ... end.

Fastlane iOS sertifikalarını nasıl yönetir?

match aksiyonu aracılığıyla. Şifrelenmiş sertifikaları ve provisioning profillerini bir Git deposunda saklar. Her geliştirici depoyu klonlar, match MATCH_PASSWORD değişkeninin şifresini kullanarak dosyaların şifresini çözer ve bunları anahtarlığa yükler. Bu, "benim makinemde çalışıyor" sorununu çözer.

Fastlane, Firebase App Distribution ile çalışır mı?

Evet. Fastlane'de APK ve IPA'yı Firebase App Distribution'a yüklemek için yerleşik firebase_app_distribution aksiyonu bulunur. Testçi eklemek için firebase_app_distribution_add_testers da mevcuttur. Bir alternatif, App Center için appcenter_upload aksiyonudur.

Fastlane'i bir CI sunucusuna nasıl kurarım?

Fastlane, RubyGems aracılığıyla kurulur: gem install fastlane -NV. iOS, macOS ve Xcode gerektirir; Android, Linux veya macOS ile JDK ve Android SDK gerektirir. GitHub Actions'da Ruby ve Fastlane'i kurmak için hazır bir ruby/setup-ruby aksiyonu vardır. Ortam değişkenleri CI sisteminin secrets'ları aracılığıyla iletilir.

Fastlane, Bitrise veya Jenkins'ten nasıl farklıdır?

Fastlane, derleme ve yayınlama görevlerini otomatikleştirmek için bir kütüphane ve CLI'dir. Bitrise ve Jenkins tam CI/CD platformlarıdır. Fastlane onların içinde çalışır: Jenkins, Fastlane'i bir pipeline adımı olarak çalıştırır, Bitrise, Fastlane'i özel bir Step aracılığıyla çağırır. Fastlane bir CI sisteminin yerini almaz — onu mobil özel işlevsellikle tamamlar.

Özet

  • Fastlane — iOS ve Android için mobil uygulamaların derleme, test ve yayınlamasını otomatikleştiren açık kaynaklı araç
  • Fastfile — aksiyon dizileriyle senaryoları (lanes) tanımlayan Ruby yapılandırma dosyası
  • match + gym + pilot — iOS için standart pipeline: sertifika yönetimi, IPA derleme, TestFlight yükleme
  • gradle + supply — Android için standart pipeline: Gradle ile derleme, Google Play Console'a yükleme
  • CI/CD entegrasyonu — Fastlane, ortam değişkenleri aracılığıyla GitHub Actions, GitLab CI, Bitrise, Jenkins ve CircleCI'ye entegre olur
  • 200+ aksiyon — kod imzalama, derleme, test, ekran görüntüsü, yayınlama ve bildirimler için yerleşik komutlar
  • Eklentiler — topluluk uzantıları yeni aksiyonlar ekler: sürüm yönetimi, Sentry, mesajlaşma bildirimleri

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