A CI/CD (Continuous Integration / Continuous Delivery) az alkalmazás automatikus építésének, tesztelésének és szállításának gyakorlata minden kódváltoztatáskor. A Statista (2025) szerint a mobilfejlesztő csapatok 80%-a használ CI/CD-t. Ez a cikk bemutatja a népszerű CI-eszközöket, a Fastlane-t a mobil build automatizáláshoz, valamint a Canary Release-t és a Feature Flags-eket.
Főbb pontok
Continuous Integration a mobilalkalmazások CI/CD automatizálásának alapja. Ez egy olyan gyakorlat, ahol minden fejlesztő naponta többször egyesíti a kódját egy megosztott tárhelybe. Minden push után a CI-szerver automatikusan felépíti a projektet és futtatja a teszteket. Ha a tesztek meghiúsulnak, a build hibásnak minősül, és a csapat azonnal kijavítja a problémát. A CI megakadályozza a «nálam működik» helyzetet, ahol az egyik fejlesztő kódja elrontja a másikét.
Build Pipeline — a push-onként végrehajtott lépések sorozata: kód linting → egységtesztek → debug APK/IPA build → integrációs tesztek → release build. Minden lépés csak az előző sikeres befejezése után fut. A build összetevők — APK, IPA, AAB, tesztjelentések — mentésre kerülnek és letölthetők.
Continuous Delivery — a kód automatikusan épül és tesztelődik, de a termelésbe való kiadásról ember dönt. Continuous Deployment — minden sikeres build automatikusan termelésbe kerül. Mobilalkalmazások esetében a CD (áruházakba szállítás) a TestFlight-on vagy Internal Testingen keresztül gyakoribb, mivel a publikálás végső döntését a fejlesztő vagy a menedzser hozza. Staging — a termeléshez a lehető legközelebb álló környezet, a build tesztelésére használják a kiadás előtt.
GitHub Actions egy beépített CI/CD rendszer mobilalkalmazások automatizálására GitHub-on. Az Actions YAML konfigurációt (.github/workflows) használ a pipeline-ok leírásához. Kész action-ok állnak rendelkezésre mobilfejlesztéshez: actions/setup-java, gradle-build-action Android-hoz, xcodebuild-action iOS-hez. A GitHub Actions 2000 ingyenes percet biztosít havonta privát tárhelyek számára.
Példa: egy Android workflow tartalmazza a kód ellenőrzését, JDK 17 beállítást, Gradle függőségek gyorsítótárazását, lint és egységtesztek futtatását, APK build-et és összetevő feltöltést. iOS esetén — ellenőrzés, Xcode beállítás, pod install, XCTest futtatás, archiválás és IPA export. A GitHub Actions integrálódik a GitHub Releases, Slack és Telegram szolgáltatásokkal az értesítésekhez.
GitLab CI egy beépített CI/CD rendszer a GitLab-ben, .gitlab-ci.yml-en keresztül konfigurálva. A GitLab CI runner-eket használ — ágenseket, amelyek a feladatokat végrehajtják. Mobilfejlesztéshez használhat megosztott runner-eket (Linux Android-hoz) vagy saját runner-eket (macOS iOS-hez). A GitLab CI támogatja a párhuzamos feladatokat, összetevőket, környezeteket és kézi jóváhagyást a termelési kiadásokhoz.
Bitrise egy CI/CD platform, amely a mobilalkalmazás-automatizálásra specializálódott. A Bitrise kész Step-eket kínál Android, iOS, Flutter és React Native rendszerekhez: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. A Bitrise automatikusan konfigurálja a kód aláírást iOS-hez (Codesigndoc-on keresztül), és virtuális gépeket biztosít előre telepített Xcode, Android SDK, Flutter és más eszközökkel.
A Bitrise előnyei: egyszerű beállítás a vizuális Workflow szerkesztőn keresztül, párhuzamos build-ek támogatása, integráció a Firebase Test Lab, App Store Connect és Google Play Console szolgáltatásokkal. A Bitrise 90 ingyenes percet biztosít havonta személyes projektekhez. Az IT Sectr-nél minden mobil projekthez a Bitrise-t használjuk — jelentősen leegyszerűsíti a CI/CD-t a kézi GitHub Actions beállításhoz képest.
| Szempont | GitHub Actions | GitLab CI | Bitrise | CircleCI |
|---|---|---|---|---|
| Specializáció | Általános | Általános | Mobil | Általános |
| macOS iOS-hez | Igen (macOS runner) | Saját runner | Igen (beépített) | Igen (macOS) |
| Ingyenes korlát | 2000 perc/hó | 400 perc/hó | 90 perc/hó | 6000 perc/hó |
| Fastlane integráció | Run script segítségével | Run script segítségével | Kész Step | Run script segítségével |
| Kód aláírás | Kézi beállítás | Kézi beállítás | Automatikus | Fastlane segítségével |
| Párhuzamos build | Igen | Igen | Igen | Igen |
Fastlane egy mobilalkalmazás-automatizálási eszköz iOS és Android rendszerekhez, Ruby-ban írva. A Fastlane kész action-ok (200+) rendszeréből és egy DSL-ből áll, amely a Fastfile-on keresztül írja le a forgatókönyveket. A Fastlane olyan feladatokat old meg, amelyeket minden mobilfejlesztő kézzel végez: kód aláírás, képernyőkép készítés, feltöltés TestFlight-ba és Google Play-be, tanúsítványok és provisioning profilok kezelése.
Lane — egy elnevezett forgatókönyv a Fastfile-ban. Példa: lane :release do — egy kiadás megjelentetéséhez szükséges műveletek lánca. Match — eszköz a tanúsítványok és provisioning profilok biztonságos tárolására és szinkronizálására titkosított Git-tárhelyen keresztül. Gym — iOS-alkalmazások buildelése és archiválása (egy wrapper az xcodebuild körül). Pilot — build-ek feltöltése és kezelése a TestFlight-ban. Deliver — alkalmazás és metaadatok feltöltése az App Store Connect-be. Snapshot — automatikus képernyőkép készítés minden nyelven. Screengrab — automatikus képernyőkép készítés Androidhoz.
Példa Fastfile Androidhoz: lane :beta meghívja a gradle-t (assembleRelease), majd a firebase_app_distribution-t a tesztelőknek való terjesztéshez. iOS esetén: lane :beta meghívja a match-et (tanúsítvány letöltés), gym-et (archiválás) és pilot-ot (feltöltés TestFlight-ba). A Fastlane futtatható lokálisan és CI-szerveren is — ami univerzális eszközzé teszi bármely mobil projektben.
Canary Release egy CI/CD automatizálási stratégia az alkalmazás új verziójának a felhasználók egy kis százalékára (1–5%) történő bevezetésére a teljes kiadás előtt. A Google Play Console-ban ez a Staged Rollout segítségével valósul meg: kiad egy frissítést a közönség 5%-ának, figyeli az összeomlásokat és a metrikákat, és ha nincs probléma, növeli a százalékot. Az App Store Connect-ben — a Phased Release for Automatic Updates segítségével.
A/B tesztelés — egy funkció két verziójának összehasonlítása véletlenszerű felhasználói csoportokon. Mobilfejlesztésben az A/B teszteket Feature Flags, Firebase Remote Config vagy szerveroldali logika segítségével végzik. A Canary Release és az A/B tesztek minimalizálják a kockázatokat új funkciók bevezetésekor.
Feature Flag (Feature Toggle) — a funkcionalitás feltételes aktiválása új kód telepítése nélkül. A Feature Flag egy ellenőrzés a kódban: if (featureFlag.isEnabled()) { /* új kód */ } else { /* régi kód */ }. A jelzőket szolgáltatásokon keresztül kezelik: LaunchDarkly, Split.io, Firebase Remote Config. A Feature Flags lehetővé teszi a fejlesztők számára, hogy kódot egyesítsenek a main-be akkor is, ha a funkció még nem áll készen a felhasználók számára.
LaunchDarkly — a legnépszerűbb Feature Flags kezelő platform. A LaunchDarkly SDK-kat biztosít iOS, Android, Flutter és React Native rendszerekhez. Aktiválhat funkciókat meghatározott felhasználók, szegmensek, régiók vagy a közönség százaléka számára. A Feature Flags kill switch-ként is használatos — a problémás funkció azonnali kikapcsolása az alkalmazás új verziójának kiadása nélkül.
Gyakran Ismételt Kérdések
Kezdje a GitHub Actions-szel — ha a kódja GitHub-on van. Az Actions ingyenes a nyilvános tárhelyek számára, beépített támogatással rendelkezik Android és iOS (macOS runner) rendszerekhez, és hatalmas kész action ökoszisztémával. Mobil specializációhoz — Bitrise.
Nem, a CI szolgáltatások (GitHub Actions, Bitrise, CircleCI) macOS runner-eket biztosítanak. A használat percéért fizet. Helyi Fastlane hibakereséshez Mac szükséges, de a CI futhat a felhőben.
Canary Release — egy új verzió bevezetése a felhasználók egy alcsoportjához a stabilitás ellenőrzésére. A/B tesztelés — egy funkció két változatának összehasonlítása a jobb kiválasztásához. A Canary a megbízhatóságról, az A/B a konverzióról szól.
A Fastlane nem kötelező, de erősen ajánlott. Fastlane nélkül kézzel kellene futtatnia az xcodebuild-et, kezelnie a tanúsítványokat és feltöltenie a build-eket webes felületen keresztül. A Fastlane egyetlen paranccsal automatizálja ezeket a feladatokat.
Match egy Fastlane eszköz az iOS Code Signing tanúsítványok kezelésére. A Match a tanúsítványokat és provisioning profilokat egy titkosított Git-tárhelyen tárolja, és szinkronizálja azokat az összes fejlesztő és a CI-szerver között.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.