Apple 2022’de Xcode Cloud’u tanıttı. “iOS için native CI/CD, Xcode’dan tek tıkla”. Fastlane’in (iOS/Android için de facto standard tool) alternatifi olarak pazarlanıyor.
2 projede Xcode Cloud denedim, diğer 10 projemde Fastlane kullanıyorum. Bu yazıda ikisinin karşılaştırmasını ve ne zaman hangisinin daha uygun olduğunu anlatacağım.
Xcode Cloud’un avantajları
1. Xcode ile native integration. Xcode’dan directly bir workflow oluşturuyorsun. Settings, triggers, actions hepsi GUI’de.
2. Apple-managed. Machines Apple’ın. macOS version’ları, Xcode version’ları Apple güncelliyor. Self-hosted Mac infrastructure gerekmiyor.
3. TestFlight integration automatic. Build success sonra TestFlight upload otomatik. No configuration.
4. Code signing built-in. Apple Developer hesabına bağlı, certificate management automated.
5. Pull request integration. GitHub/Bitbucket/GitLab webhook otomatik setup.
6. Pricing simple. Hours-based. Apple Developer Program member’ları aylık 25 compute hour ücretsiz. Plus tier $15/ay 100 hour.
Xcode Cloud’un dezavantajları
1. Sadece iOS/macOS/watchOS/tvOS. Android, backend, web ayrı CI gerekiyor. Monorepo’da karışıklık.
2. Limited customization. Bazı advanced pipeline’lar yapılmıyor. Ör: conditional step’ler, parallel job’lar arasında dependency.
3. Xcode’a bağımlılık. Workflow GUI ile yönetiliyor. Source control’de workflow config yok (Xcode 14.2’de ci_scripts geldi ama limited).
4. macOS-only. Mac kullanmayan developer’lar için setup zor.
5. Ecosystem yeni. Fastlane 10+ yıllık, Xcode Cloud 2-3 yıl. Third-party integration’lar limited.
Fastlane’in avantajları
1. Tüm platform’lar. iOS, macOS, Android, even web. Mono ile build pipeline’lar.
2. Any CI/CD system. GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins. Her yerde çalışıyor.
3. Extensive customization. Ruby-based Fastfile. Conditional logic, loops, complex pipelines.
4. Plugin ecosystem. 400+ plugin. Firebase, Sentry, Slack, Crashlytics, whatever integration.
5. Source-controlled. Fastfile Git’te, her change PR’dan geçiyor. History, review, rollback.
6. Free (open source). Tool ücretsiz. CI/CD hizmetinin maliyeti ayrı ama Fastlane kendisi ücretsiz.
Fastlane’in dezavantajları
1. Setup complex. Configuration, Fastfile writing, secret management. 1-2 günlük initial setup.
2. Maintenance overhead. Fastlane upgrade’ler, plugin compatibility, macOS/Xcode update breaking changes.
3. Code signing complex. Match (Fastlane certificate tool) setup ciddi. Apple ID integration tricky.
4. CI hosting pahalı. Mac runner’lar GitHub Actions’ta expensive. 8 saat build day için $500+/ay olabiliyor.
Karşılaştırma matrisi
| Feature | Xcode Cloud | Fastlane |
|———|————-|———-|
| Platform coverage | iOS only | All |
| Ease of setup | Easy | Medium |
| Customization | Limited | Extensive |
| CI/CD system | Xcode Cloud only | Any |
| Pricing | $0-$50/mo | CI cost |
| Code signing | Built-in | Match |
| TestFlight upload | Native | Plugin |
| Plugin ecosystem | Limited | Large |
| Source control | Workflow in Xcode | Fastfile in repo |
| Advanced pipelines | Limited | Full |
Karar kriterleri
Xcode Cloud seç:
- iOS-only project
- Small team (1-3 kişi)
- Standard build/test/deploy workflow
- Apple ecosystem’de comfortable
- No need for complex pipelines
- Avoid DevOps overhead
Fastlane seç:
- Multi-platform (iOS + Android)
- Complex workflow’lar (staging/production farklı config, conditional deploys)
- Mono-repo with backend + mobile
- Existing CI/CD investment (GitHub Actions, CircleCI)
- Custom plugin’lere ihtiyaç (Firebase, Sentry, Slack)
- Source-control discipline isteyen team
Hybrid approach
İkisi birden kullanılabilir?
Evet. Bazı projelerde:
- Xcode Cloud: Daily beta build, TestFlight upload
- Fastlane + GitHub Actions: Production release, custom deployment, Android builds
İki workflow farklı amaçlara hizmet ediyor.
Pricing reality
Small iOS project için real cost:
Xcode Cloud: 25 hour/month free. Genelde yeter. $0/month.
Fastlane + GitHub Actions (macOS runner): $0.08/min. Each release build 30 min. 10 releases/month = 300 min = $24/month. TestFlight uploads + PR runs = extra 200 min = $16/month. Toplam $40/month.
Xcode Cloud küçük project için daha ucuz.
Large project:
Xcode Cloud: Monthly 500 hour needed. $150/month (Pro tier).
Fastlane + GitHub Actions: 500 hour = $2400/month. Much more expensive.
Ama managed service (Bitrise’ın iOS plan’ı ~$100/month) daha uygun.
Migration: Fastlane’den Xcode Cloud’a
Fastlane Fastfile’ı Xcode Cloud workflow’una port etmek:
- Fastlane action’ları list’le (
fastlane deliver,fastlane upload_to_testflightvs) - Xcode Cloud’da equivalent’lerini map’le
- Custom scripts (ci_scripts folder’ında bash olarak)
- Build variants Xcode Schemes ile
1-2 haftalık iş. Ama Fastlane’in advanced features (multiple plugin chain’leri) için Xcode Cloud’da equivalent yok.
Migration yapıp pişman olma riski var: simple setup’lar migrate edilebiliyor, complex setup’lar Fastlane’de kalıyor.
Specific feature comparison
TestFlight upload:
– Xcode Cloud: Automatic, configuration-free.
– Fastlane: upload_to_testflight action, authentication config gerekiyor.
App Store release:
– Xcode Cloud: 1 click deploy.
– Fastlane: deliver action, metadata management.
dSYM upload (Crashlytics):
– Xcode Cloud: Build phase script olarak integrate edebilirsin.
– Fastlane: Built-in action.
Slack notification:
– Xcode Cloud: Limited (email only built-in).
– Fastlane: Multiple plugin options.
Real project examples
Dentii (iOS-only, solo developer): Xcode Cloud kullandım 6 ay. Simple flow, TestFlight upload otomatik, 25 hour/month yeter. Happy with it.
Parademi (iOS + Android + backend, small team): Fastlane + GitHub Actions. Mono workflow all platforms. $40/month runner cost ama tüm platform’lar unified.
GO HERO (iOS-only, complex build variants): Fastlane. Multiple build configurations (iPad specific, device specific), custom plugin chain’leri. Xcode Cloud yetmiyor.
Fastlane + Xcode Cloud coexistence
Gelişmiş senaryo: Xcode Cloud primary CI, Fastlane specific tasks için.
# Xcode Cloud ci_scripts
gem install fastlane
fastlane custom_laneBu sayede:
– Xcode Cloud build’i yönetiyor (App Store signing, TestFlight)
– Fastlane specific tasks için (Firebase upload, complex metadata, etc)
Hybrid, bazı durumlarda optimal.
Future outlook
Xcode Cloud hızla gelişiyor. 2022’den beri her WWDC’de yeni feature’lar. 2 yıl sonra Fastlane’in yerini almaya aday.
Ama Fastlane’in ecosystem’i (400+ plugin, Android support, any CI) hâlâ unmatched. iOS-only projelerde Xcode Cloud yeter, diverse ekosistem için Fastlane dominant kalacak.
Sonuç
Küçük, iOS-only, simple workflow için Xcode Cloud harika başlangıç. Setup dakikalar, Apple-managed, ucuz.
Multi-platform, complex workflow, source-controlled pipeline için Fastlane kazanıyor. Initial setup investment karşılığı flexibility ve ecosystem access.
Kararı project’in gerçek ihtiyaçlarına göre ver. Hibrit yaklaşım da var, zorunda değilsin tek seçim yapmak.