Mobil geliştirmede CI/CD ve otomasyon: nedir, nasıl çalışır ve neden gereklidir

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

CI/CD (Continuous Integration / Continuous Delivery), her kod değişikliğinde uygulamayı otomatik olarak derleme, test etme ve teslim etme pratiğidir. Statista (2025) verilerine göre, mobil geliştirme ekiplerinin %80'i CI/CD kullanmaktadır. Bu makale popüler CI araçlarını, mobil derleme otomasyonu için Fastlane'i ve Canary Release ile Feature Flags'i ele almaktadır.

Önemli Noktalar

  • CI (Continuous Integration) — depoya her push'ta otomatik derleme ve test.
  • CD (Continuous Delivery) — derlenen uygulamanın mağazalara veya staging'e otomatik teslimatı.
  • GitHub Actions, GitLab CI, Bitrise ve CircleCI popüler mobil CI/CD platformlarıdır.
  • Fastlane — belirli mobil görevler için otomasyon aracı: kod imzalama, ekran görüntüleri, yayınlama.
  • Feature Flags ve Canary Release, yeni özellikleri bir kullanıcı alt kümesine güvenle dağıtmayı sağlar.

CI/CD Nedir?

Continuous Integration

Continuous Integration, mobil uygulamalar için CI/CD otomasyonunun temelidir. Her geliştiricinin kodunu günde birkaç kez paylaşılan bir depoya birleştirdiği bir uygulamadır. Her push'tan sonra CI sunucusu otomatik olarak projeyi derler ve testleri çalıştırır. Testler başarısız olursa, derleme bozuk kabul edilir ve ekip sorunu hemen düzeltir. CI, bir geliştiricinin kodunun diğerinin kodunu bozduğu «bende çalışıyor» durumunu önler.

Build Pipeline — her push'ta yürütülen adımlar dizisi: kod linting → birim testler → debug APK/IPA derleme → entegrasyon testleri → release derleme. Her adım yalnızca bir önceki adım başarılı olduktan sonra çalışır. Derleme yapıtları — APK, IPA, AAB, test raporları — kaydedilir ve indirilebilir.

Continuous Delivery vs Continuous Deployment

Continuous Delivery — kod otomatik olarak derlenir ve test edilir, ancak üretime sürme kararını bir insan verir. Continuous Deployment — her başarılı derleme otomatik olarak üretime sürülür. Mobil uygulamalar için, TestFlight veya Internal Testing aracılığıyla CD (mağazalara teslimat) daha yaygındır, çünkü yayınlama kararını geliştirici veya yönetici verir. Staging — üretime mümkün olduğunca yakın ortam, sürümden önce derlemeyi test etmek için kullanılır.

GitHub Actions ve GitLab CI

GitHub Actions

GitHub Actions, GitHub'da mobil uygulamaları otomatikleştirmek için yerleşik bir CI/CD sistemidir. Actions, iş hatlarını tanımlamak için YAML yapılandırmasını (.github/workflows) kullanır. Mobil geliştirme için hazır eylemler mevcuttur: actions/setup-java, Android için gradle-build-action, iOS için xcodebuild-action. GitHub Actions, özel depolar için ayda 2000 ücretsiz dakika sağlar.

Örnek: Bir Android iş akışı, kod checkout, JDK 17 kurulumu, Gradle bağımlılık önbellekleme, lint ve birim test çalıştırma, APK derleme ve yapıt yükleme içerir. iOS için — checkout, Xcode kurulumu, pod install, XCTest çalıştırma, arşivleme ve IPA dışa aktarma. GitHub Actions, bildirimler için GitHub Releases, Slack ve Telegram ile entegre olur.

GitLab CI

GitLab CI, .gitlab-ci.yml ile yapılandırılan GitLab'de yerleşik bir CI/CD sistemidir. GitLab CI, işleri yürüten aracılar olan runner'ları kullanır. Mobil geliştirme için paylaşılan runner'ları (Android için Linux) veya kendi runner'larınızı (iOS için macOS) kullanabilirsiniz. GitLab CI, paralel işleri, yapıtları, ortamları ve üretim sürümleri için manuel onayı destekler.

Mobil Uygulamalar için Bitrise

Neden Bitrise?

Bitrise, mobil uygulama otomasyonunda uzmanlaşmış bir CI/CD platformudur. Bitrise, Android, iOS, Flutter ve React Native için hazır Steps sunar: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. Bitrise, iOS için kod imzalamayı otomatik olarak yapılandırır (Codesigndoc aracılığıyla) ve Xcode, Android SDK, Flutter ve diğer araçlar önceden yüklenmiş sanal makineler sağlar.

Bitrise avantajları: görsel Workflow düzenleyicisi ile basit kurulum, paralel derleme desteği, Firebase Test Lab, App Store Connect ve Google Play Console ile entegrasyon. Bitrise, kişisel projeler için ayda 90 ücretsiz dakika sağlar. IT Sectr'de tüm mobil projeler için Bitrise kullanıyoruz — manuel GitHub Actions kurulumuna kıyasla CI/CD'yi önemli ölçüde basitleştirir.

Mobil geliştirme için CI/CD araçları karşılaştırması
Kriter GitHub Actions GitLab CI Bitrise CircleCI
Uzmanlık Genel Genel Mobil Genel
iOS için macOS Evet (macOS runner) Kendi runner Evet (yerleşik) Evet (macOS)
Ücretsiz limit 2000 dk/ay 400 dk/ay 90 dk/ay 6000 dk/ay
Fastlane entegrasyonu run script ile run script ile Hazır Step run script ile
Kod İmzalama Manuel kurulum Manuel kurulum Otomatik Fastlane ile
Paralel derleme Evet Evet Evet Evet

Fastlane: Mobil Derleme Otomasyonu

Fastlane Nedir?

Fastlane, Ruby ile yazılmış iOS ve Android için mobil uygulama otomasyon aracıdır. Fastlane, hazır eylemler (200+) sistemi ve Fastfile aracılığıyla senaryoları tanımlamak için DSL'den oluşur. Fastlane, her mobil geliştiricinin manuel olarak yaptığı görevleri çözer: kod imzalama, ekran görüntüsü oluşturma, TestFlight ve Google Play'e yükleme, sertifika ve provisioning profil yönetimi.

Fastlane'in Temel Bileşenleri

Lane — Fastfile'da adlandırılmış senaryo. Örnek: lane :release do — bir sürüm yayınlamak için eylem zinciri. Match — şifrelenmiş bir Git deposu aracılığıyla sertifikaları ve provisioning profillerini güvenle depolama ve senkronize etme aracı. Gym — iOS uygulaması derleme ve arşivleme (xcodebuild üzerinde bir sarmalayıcı). Pilot — TestFlight'da derleme yükleme ve yönetimi. Deliver — App Store Connect'e uygulama ve meta veri yükleme. Snapshot — tüm dillerde otomatik ekran görüntüsü oluşturma. Screengrab — Android için otomatik ekran görüntüsü oluşturma.

Android için Fastfile örneği: lane :beta gradle (assembleRelease) çağırır, ardından test edenlere dağıtmak için firebase_app_distribution çağırır. iOS için: lane :beta match (sertifika indirme), gym (arşivleme) ve pilot (TestFlight'a yükleme) çağırır. Fastlane yerel olarak ve CI sunucusunda çalışabilir — bu onu herhangi bir mobil projede evrensel bir araç haline getirir.

Canary Release ve Feature Flags

Canary Release

Canary Release, tam sürümden önce uygulamanın yeni bir sürümünü küçük bir kullanıcı yüzdesine (%1–5) dağıtmak için bir CI/CD otomasyon stratejisidir. Google Play Console'da bu Staged Rollout ile uygulanır: kitlenizin %5'ine bir güncelleme yayınlarsınız, çökmeleri ve metrikleri izlersiniz ve sorun yoksa yüzdeyi artırırsınız. App Store Connect'te — Phased Release for Automatic Updates aracılığıyla.

A/B Testing — rastgele kullanıcı gruplarında bir özelliğin iki versiyonunun karşılaştırılması. Mobil geliştirmede A/B testleri Feature Flags, Firebase Remote Config veya sunucu tarafı mantığı ile yapılır. Canary Release ve A/B testleri yeni özellikler dağıtılırken riskleri en aza indirir.

Feature Flags

Feature Flag (Feature Toggle) — yeni kod dağıtmadan işlevselliğin koşullu olarak etkinleştirilmesi. Feature Flag, kodda bir kontroldür: if (featureFlag.isEnabled()) { /* yeni kod */ } else { /* eski kod */ }. Flag'ler hizmetler aracılığıyla yönetilir: LaunchDarkly, Split.io, Firebase Remote Config. Feature Flags, özellik henüz kullanıcılara hazır olmasa bile geliştiricilerin kodu main'e birleştirmesine olanak tanır.

LaunchDarkly — en popüler Feature Flags yönetim platformu. LaunchDarkly, iOS, Android, Flutter ve React Native için SDK'lar sağlar. Özellikleri belirli kullanıcılar, segmentler, bölgeler veya kitlenin bir yüzdesi için etkinleştirebilirsiniz. Feature Flags ayrıca kill switch olarak da kullanılır — yeni bir uygulama sürümü yayınlamadan sorunlu bir özelliği anında devre dışı bırakma.

Sıkça Sorulan Sorular

Yeni başlayan biri hangi CI/CD sistemiyle başlamalı?

Kodunuz GitHub'daysa GitHub Actions ile başlayın. Actions herkese açık depolar için ücretsizdir, Android ve iOS (macOS runner) için yerleşik desteğe ve hazır eylemlerden oluşan geniş bir ekosisteme sahiptir. Mobil uzmanlık için — Bitrise.

iOS CI/CD için kendi Mac'ime ihtiyacım var mı?

Hayır, CI hizmetleri (GitHub Actions, Bitrise, CircleCI) macOS runner sağlar. Kullanım dakikasına göre ödeme yaparsınız. Yerel Fastlane hata ayıklaması için Mac gerekir, ancak CI bulutta çalışabilir.

Canary Release'in A/B testinden farkı nedir?

Canary Release — kararlılığı kontrol etmek için bir kullanıcı alt kümesine yeni sürüm dağıtma. A/B testi — daha iyisini seçmek için bir özelliğin iki varyantını karşılaştırma. Canary güvenilirlikle, A/B dönüşümle ilgilidir.

Fastlane zorunlu mu?

Fastlane zorunlu değildir ancak şiddetle tavsiye edilir. Fastlane olmadan manuel olarak xcodebuild çalıştırmanız, sertifikaları yönetmeniz ve web arayüzü üzerinden derleme yüklemeniz gerekir. Fastlane tüm bu görevleri tek bir komutla otomatikleştirir.

Fastlane'de Match nedir?

Match, iOS Code Signing sertifikalarını yönetmek için Fastlane aracıdır. Match, sertifikaları ve provisioning profillerini şifrelenmiş bir Git deposunda saklar ve tüm geliştiriciler ve CI sunucusu arasında senkronize eder.

Özet

  • CI/CD — uygulamanın otomatik derlemesi, testi ve teslimatı. Her ekip için temel bir standart.
  • GitHub Actions — GitHub projeleri için genel CI/CD; Bitrise — mobil için uzmanlaşmış.
  • Fastlane — mobil derleme otomasyonu aracı: kod imzalama, ekran görüntüleri, yayınlama.
  • Build Pipeline — adım sırası: linting → birim testler → derleme → UI testleri → sürüm.
  • Canary Release — %1–5 kullanıcıya dağıtım; Feature Flags — dağıtım olmadan özellik etkinleştirme.
  • Feature Flags — LaunchDarkly / Firebase Remote Config ile çalışma zamanı işlev yönetimi.
  • CI/CD otomasyonu sürüm süresini haftalardan saatlere düşürür ve insan hatalarını en aza indirir.

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ış