İçindekiler
- Hızlı Karşılaştırma
- GitHub Actions: Depoyla iç içe, kolay entegrasyon
- GitLab CI/CD: Self-hosted kontrol ve pipeline esnekliği
- Codemagic: Mobil için hazır, Flutter ağırlıklı
- Bitrise: Mobil pipeline pazar yeri ve hazır entegrasyonlar
- Jenkins: Tam kontrol isteyenler için self-hosted güç merkezi
- Fastlane: Otomasyon görevlerini standartlaştır
- Hangisini Seçmelisin?
- Sıkça Sorulan Sorular
Mobil uygulama geliştirme için ücretsiz CI/CD araçları, hem küçük takımlar hem de tek geliştiriciler için zaman kazandırır ve dağıtım süreçlerini otomatikleştirir. Flutter, React Native ve native (iOS/Android) iş akışlarında derleme, imzalama (code signing), test çalıştırma ve mağaza dağıtımı gibi adımlar özel dikkat ister; bu nedenle genel amaçlı CI çözümlerinin mobil ihtiyaçlarına nasıl uyduğunu bilmek önemli.
Bu yazıda mobil odaklı bir açıyla en kullanışlı ücretsiz CI/CD araçlarını ele alıyorum: hangi araç hangi işi daha iyi yapar, iOS ve Android için imza ve provisioning profilleriyle nasıl başa çıkılır, emulator/simulator yönetimi ve mağaza dağıtımları konusunda ne tür sınırlamalar olabilir. Amacım seni hangi aracı seçmen gerektiğine karar vermende kolaylaştırmak.
Hızlı Karşılaştırma
| Program | Platform | En iyi olduğu iş | Ücret |
|---|---|---|---|
| GitHub Actions | Bulut / Self-hosted | Repo tetiklemeli otomasyon, entegrasyon | Ücretsiz plan var (sınırlamalar mevcut) |
| GitLab CI/CD | Bulut / Self-hosted | Self-hosted runner ile tam kontrol, private projeler | Ücretsiz plan var (sınırlamalar mevcut) |
| Codemagic | Bulut | Mobil odaklı hazır iş akışları (Flutter öne çıkıyor) | Ücretsiz plan var (sınırlamalar mevcut) |
| Bitrise | Bulut | Mobil uygulama pipeline şablonları, market entegrasyonları | Ücretsiz plan var (sınırlamalar mevcut) |
| Jenkins | Self-hosted | Tam özelleştirilebilir, self-hosted altyapılar | Açık kaynak, kendin barındırman gerekir |
| Fastlane | CLI / Otomasyon kütüphanesi | İmzalama, mağaza yükleme, ekran görüntüsü otomasyonu | Açık kaynak, ücretsiz |
GitHub Actions: Depoyla iç içe, kolay entegrasyon
GitHub Actions, kod depo ile sıkı entegre çalışan bir otomasyon platformudur. Mobil projelerde tetiklemeleri (push, PR, tag) iş akışlarına çevirip derleme, test ve dağıtım adımlarını çalıştırabilir. GitHub'ın ekosistemi içinde olduğu için paket yönetimi, issue tabanlı tetikleme ve marketplace'ten hazır action'larla hızla işe başlanabiliyor.
Mobil tarafında GitHub Actions ile Android ve iOS derlemeleri, emulator/simulator başlatma, keystore/provisioning dosyalarını güvenli şekilde secrets olarak saklayıp kullanma yaygın bir yaklaşımdır. Ancak macOS runner'lar ücretsiz kullanımda kısıtlı olabilir; iOS derlemelerinde genellikle self-hosted macOS makineler tercih edilir.
Artıları
- Depoyla sıkı entegrasyon, GitHub Marketplace'te çok sayıda mobil action var
- Secrets yönetimi ve artifact kayıt yetenekleri güçlü
- Hem bulut hem self-hosted runner desteğiyle esneklik sağlıyor
Eksileri
- Ücretsiz macOS bulut runner kaynakları sınırlı olabilir (iOS derlemelerinde self-hosting gerekebilir)
- Büyük projelerde paralel derleme kotalarıyla karşılaşabilirsin
Kimler için? GitHub'da kod tutan, otomasyonunu depo ile birlikte yönetip hazır action'lar kullanmak isteyenler için.
GitLab CI/CD: Self-hosted kontrol ve pipeline esnekliği
GitLab CI/CD, hem bulut hem self-hosted kullanımda güçlü pipeline tanımları sunar. Mobil ekipler için runner'lar sayesinde macOS veya Linux tabanlı kendi makinelerini bağlayabilir, depolama ve network kontrolünü elinde tutabilirsin. YAML tabanlı pipeline'lar, stage ve job ayrımıyla büyük proje yapılarında okunabilirlik sağlar.
iOS için kendi macOS runner'ını kurmak ve provisioning süreçlerini runner üzerinde yönetmek yaygın bir yöntemdir. Android tarafında ise emülatör kurulumu ve Gradle cache'leri ile hız kazanabilirsin. GitLab ayrıca artifact, cache ve container registry entegrasyonları sunar.
Artıları
- Self-hosted runner ile tam kontrol; kurumsal gizlilik gereksinimleri için uygun
- Detaylı pipeline yapılandırma ve job paralelleştirme seçenekleri
- Artifact ve cache yönetimi güçlü
Eksileri
- Kendi runnerlarını yönetmek operasyonel yük getirir
- Bulut kullanımda da aylık kredi/kota sınırlamaları olabiliyor
Kimler için? Özel altyapı veya sıkı gizlilik gereksinimi olan, self-hosted runner kullanmaya hazır ekipler için.
Codemagic: Mobil için hazır, Flutter ağırlıklı
Codemagic mobil geliştirmeye odaklanan bir CI/CD servisidir; Flutter projeleri için özellikle popülerdir. Hazır workflow şablonları, otomatik kod imzalama (code signing) entegrasyonları ve mağaza dağıtım adımları sayesinde mobil odaklı işleri hızlandırır. Flutter dışında native iOS/Android ve React Native projeleriyle de çalışır.
Platform, build cache, test çalıştırma ve otomatik sürüm artışı gibi mobil ihtiyaçlarını kolaylaştırır. Ücretsiz planda belirli dakika veya paralel iş sınırlamaları olabilir; özel dağıtım ve yüksek kapasite gereksinimleri için ücretli planlara bakmak gerekebilir.
Artıları
- Mobil odaklı, Flutter için güçlü hazır şablonlar
- Code signing ve mağaza dağıtımı adımlarında kolaylaştırıcı özellikler
- Tarayıcı tabanlı yapılandırma arayüzü ve önceden tanımlı adımlar
Eksileri
- Ücretsiz planda build zamanı/kota veya paralel job sınırlamaları olabilir
- Çok büyük projeler veya özel altyapı ihtiyaçları için self-hosting alternatifi yok
Kimler için? Flutter veya mobil projelerde hızlıca işe başlamak, code signing ve mağaza dağıtımlarını kolaylaştırmak isteyen geliştiriciler için.
Bitrise: Mobil pipeline pazar yeri ve hazır entegrasyonlar
Bitrise mobil uygulamalar için geliştirilmiş workflow'lar ve çok sayıda entegrasyon sunar. Hazır adımlar (step) kütüphanesi, Play Store / App Store Connect dağıtımları, crash/analytics entegrasyonları ve mobil odaklı script adımlarıyla öne çıkar. UI üzerinden workflow tasarımı yapabilir ve özel script'ler ekleyebilirsin.
Şirketler genellikle Bitrise'i hızlı kurulum, hazır step'ler ve marketplace entegrasyonları için tercih eder. Ücretsiz plan sınırlı dakika ve paralel job ile gelir; açık kaynak projeler için farklı politikalar olabilir.
Artıları
- Mobil odaklı adım kütüphanesi ve marketplace entegrasyonları
- Kullanıcı dostu arayüz ve template desteği
- Play Store / App Store dağıtım adımlarını kolaylaştırıyor
Eksileri
- Ücretsiz kotası belirli kullanım senaryolarında yetersiz kalabilir
- Özelleştirme için bazen script yazman gerekebilir
Kimler için? Hazır mobil workflow'ları, kolay mağaza entegrasyonlarını ve çabuk kurulum isteyen küçük takımlar için.
Jenkins: Tam kontrol isteyenler için self-hosted güç merkezi
Jenkins uzun yıllardır var olan açık kaynak bir CI sunucusudur. Plugin ekosistemi sayesinde neredeyse her türlü mobil ve server-side senaryoyu destekleyebilirsin. Kendi macOS/Windows/Linux makineni kurarak iOS ve Android derlemelerini tamamen kontrol altında tutabilirsin.
Jenkins'in esnekliği büyük projelerde avantaj sağlar, ancak kurulumu, plugin yönetimi ve güvenlik yamalarının uygulanması operasyonel iş yükü getirir. Büyük performans ve paralel build ihtiyaçlarında kendi altyapını ölçeklendirmen gerekir.
Artıları
- Açık kaynak, sınırsız özelleştirme imkanı
- Kendi altyapını kullanarak macOS/Android derlemelerinde tam kontrol
- Zengin plugin ekosistemi
Eksileri
- Kurulum ve bakım operasyonel yük getirir
- Yeni başlayanlar için konfigürasyon karmaşık olabilir
Kimler için? Tam kontrol isteyen, kendi sunucularını yönetebilecek orta ve büyük ölçekli ekipler için.
Fastlane: Otomasyon görevlerini standartlaştır
Fastlane bir CI servisi değil, mobil uygulamalar için otomasyon ve dağıtım araç setidir. İmzalama, sürüm numarası yönetimi, ekran görüntüsü üretimi ve Play/App Store yüklemeleri gibi adımları komut haline getirir. CI sisteminin içinde fastlane komutlarını çağırarak tekrarlanabilir ve okunabilir pipeline'lar oluşturabilirsin.
Fastlane, özellikle imza yönetimi ve mağaza yüklemelerinde platforma özgü karmaşıklıkları soyutlar; bu nedenle GitHub Actions, GitLab veya Jenkins ile birlikte sık kullanılır.
Artıları
- İmzalama, mağaza yükleme ve sürüm yönetimi adımlarını kolaylaştırır
- Açık kaynak ve geniş eklenti desteği
- CI bağımsız, her platformda çalıştırılabilir
Eksileri
- Tek başına CI değildir; bir CI hizmeti ile birlikte kullanılmalı
- Bazı mağaza işlemleri için ek sertifika/izin ayarları gerekebilir
Kimler için? CI içinde imzalama, sürüm yönetimi ve mağaza yüklemesini otomatikleştirmek isteyen mobil geliştiriciler için.
Hangisini Seçmelisin?
- Küçük proje, GitHub kullanıyorsan: GitHub Actions
- Self-hosting veya gizlilik önceliğin varsa: GitLab CI/CD veya Jenkins
- Flutter odaklı hızlı kurulum istiyorsan: Codemagic
- Hazır mobil adımlar ve marketplace arıyorsan: Bitrise
- Tam kontrol ve plugin esnekliği arıyorsan: Jenkins
- İmzalama ve mağaza yüklemesini standartlaştırmak istiyorsan: Fastlane
Sıkça Sorulan Sorular
Mobil projede iOS derlemek için mutlaka macOS gerekiyor mu?
Evet, App Store için resmi olarak iOS uygulamalarını derlemek ve imzalamak genellikle macOS gerektirir; bu nedenle macOS runner veya self-hosted mac makineler sıkça tercih edilir.
Ücretsiz planlar genelde yeterli olur mu?
Küçük projeler ve kişisel uygulamalar için birçok ücretsiz plan yeterli olur; ancak yoğun paralel derleme, büyük ekipler veya kurumsal ihtiyaçlarda ücretli planlara veya self-hostinge geçmek gerekebilir.
Hangi araç React Native için daha uygun?
React Native hem Codemagic hem Bitrise hem de GitHub Actions veya GitLab CI ile rahat çalışır; seçim workflow karmaşıklığına, iOS için macOS erişimine ve hazır entegrasyon tercihlerine bağlıdır.
Code signing (imza) süreçleri nasıl yönetilmeli?
Secrets veya secure variables kullanarak keystore, provisioning profile ve sertifikaları güvenli şekilde saklamalı, CI adımlarında geçici olarak erişim sağlamalısın. Fastlane bu adımları otomatikleştirmede yardımcı olur.
Emülatör/simulator çalıştırmak zor mu?
Android emülatörleri CI üzerinde çalıştırılabilir; ancak kaynak tüketimi yüksek olabilir. iOS simulator'lar macOS runner gerektirir. Hazır image'larda emulator kurulumu time-consuming olabilir, bu yüzden cache ve snapshot teknikleri hız kazandırır.

