Jenkins ist ein Open-Source-CI/CD-Server, der das Erstellen, Testen und Ausliefern mobiler Anwendungen automatisiert. Im Gegensatz zu Cloud-Lösungen wird Jenkins auf Ihrer eigenen Infrastruktur bereitgestellt und über eine Weboberfläche oder Code konfiguriert. Laut CloudBees, 2025 nutzen über 1,6 Millionen Teams Jenkins für CI/CD-Prozesse. Das System unterstützt verteilte Builds durch eine Master-Agent-Architektur und über 1800 Plugins zur Integration mit Entwicklungstools.
Wichtige Punkte
Jenkins ist ein Open-Source-CI/CD-Server, der in Java geschrieben ist und das Erstellen, Testen und Ausliefern von Software automatisiert. Im Kontext der mobilen Entwicklung ermöglicht Jenkins Teams, iOS- und Android-Anwendungen automatisch zu erstellen, Unit- und UI-Tests durchzuführen, Builds zu signieren und ohne manuelle Vorgänge an den App Store oder Google Play zu liefern.
Die Notwendigkeit für Jenkins entsteht, wenn ein Projekt über lokale Builds hinauswächst und regelmäßige Code-Integrationen von mehreren Entwicklern erfordert. Das manuelle Erstellen jedes Commits ist zeitaufwendig und fehleranfällig — Jenkins löst dieses Problem, indem es bei jeder Änderung im Repository automatische Pipelines startet.
Laut dem JetBrains Developer Ecosystem 2025 Report verwenden 54% der mobilen Teams Jenkins als ihre primäre CI/CD-Plattform. Das System unterstützt dank seiner Plugin-Architektur jede Sprache und Plattform — für Android stehen Gradle und SDK Manager zur Verfügung, für iOS Xcode Integration und Keychain Manager.
Verwenden Sie Jenkins in Projekten, bei denen Sie die volle Kontrolle über die Build-Infrastruktur, die Anpassung jedes CI/CD-Prozessschritts und die Integration mit Unternehmenssicherheitssystemen benötigen.
Die Jenkins-Architektur basiert auf dem Master-Agent-Modell. Der Master-Server verwaltet die Konfiguration, die Aufgabenplanung und die Weboberfläche, während die Agents die eigentlichen Builds auf dedizierten oder temporären Maschinen ausführen. Diese Architektur ermöglicht paralleles Erstellen von iOS-Anwendungen auf einem macOS-Agent und Android-Anwendungen auf einem Linux-Agent von einem einzigen Master-Server aus.
Der Jenkins-Master-Knoten speichert alle Einstellungen, Plugins und den Build-Verlauf im Home-Verzeichnis $JENKINS_HOME. Agents verbinden sich über SSH, JNLP oder WebSocket mit dem Master und erhalten Aufgaben aus der Warteschlange. Für die mobile Entwicklung wird empfohlen, separate macOS-Agents für iOS-Builds und Linux-Agents für Android-Builds mit installierten SDKs und Tools bereitzustellen.
Jeder Agent kann ein permanenter Server oder ein dynamischer Docker-Container sein. Laut der CloudBees-Dokumentation reduziert die Verteilung von Builds auf 5 Agents die Gesamtzeit der CI/CD-Pipeline um 70% bei 10 parallelen Aufgaben.
Jenkins Pipeline ist die Definition des gesamten CI/CD-Prozesses als Code, der zusammen mit dem Projekt im Repository gespeichert wird. Die Pipeline wird in einer Jenkinsfile beschrieben und unterstützt zwei Syntaxvarianten: Declarative (strukturiert, mit vordefinierten Blöcken) und Scripted (flexibel, basierend auf Groovy mit vollständiger Kontrolle über den Ausführungsablauf).
Der deklarative Syntax wird für die meisten mobilen Projekte empfohlen, da er Lesbarkeit und Vorhersagbarkeit gewährleistet. Scripted Pipeline eignet sich für komplexe Szenarien mit dynamischen parallelen Stufen, benutzerdefinierter Fehlerbehandlung und bedingter Logik basierend auf Umgebungsvariablen.
Jenkins Pipeline unterstützt zwei Syntaxvarianten, die festlegen, wie die Schritte des CI/CD-Prozesses beschrieben werden. Der deklarative Syntax verwendet eine Blockstruktur mit den Schlüsselwörtern pipeline, stages, stage und steps, was ihn für neue Benutzer intuitiv macht. Der skriptbasierte Syntax basiert auf Groovy und bietet vollständige Kontrolle über die Ausführung durch Bedingungsanweisungen und Schleifen.
Der deklarative Pipeline erstellt automatisch eine Sandbox — eine sichere Umgebung zur Ausführung von Groovy-Skripten. Dies schränkt den Zugriff auf gefährliche Methoden von Java und Groovy ein, was in Unternehmensumgebungen entscheidend ist, in denen die Pipeline-Sicherheit von einem Administrator kontrolliert wird.
Der deklarative Pipeline basiert auf vier Hauptblöcken: pipeline (Stammblock), agent (Agentenangabe), stages (Abfolge von Stufen) und post (Aktionen nach Abschluss). Jede Stufe enthält steps mit Build-Befehlen, und der post-Block definiert Aktionen bei Erfolg, Fehlschlag oder instabilem Build-Status.
Der post-Block ist besonders nützlich für mobile Projekte — hier können Sie Slack-Benachrichtigungen bei Build-Fehlern konfigurieren oder IPA- und APK-Artefakte nach erfolgreichem Abschluss archivieren. Jenkins garantiert die Ausführung von post-Aktionen, selbst wenn die Pipeline manuell abgebrochen wurde.
// Deklarativer Pipeline für iOS-Anwendung
pipeline {
agent { label 'macos' }
stages {
stage('Build') {
steps {
sh 'xcodebuild -workspace App.xcworkspace -scheme App clean build'
}
}
stage('Test') {
steps {
sh 'xcodebuild -workspace App.xcworkspace -scheme App test'
}
}
}
}
Scripted Pipeline bietet einen node-Block anstelle von agent und ermöglicht die Verwendung von Groovy-Konstrukten für dynamische Verzweigungen. Dieser Syntax eignet sich für Pipelines, bei denen die Menge der Stufen von Build-Parametern oder Ergebnissen vorheriger Schritte abhängt.
// Scripted Pipeline mit parallelen Stufen
node('macos') {
stage('Parallel Builds') {
parallel(
ios: { buildIOS() },
android: { buildAndroid() }
)
}
}
def buildIOS() {
sh 'fastlane ios build'
}
Für iOS-Projekte benötigt die Jenkinsfile einen macOS-Agent mit installiertem Xcode, CocoaPods oder Swift Package Manager und Fastlane. Eine typische Pipeline umfasst Stufen: Abhängigkeiten installieren, Build erstellen, Tests ausführen, Code signieren und an TestFlight oder den App Store liefern.
Ein wesentliches Merkmal von iOS-Builds in Jenkins ist die Verwaltung von Zertifikaten und Provisioning-Profilen. Es wird empfohlen, Fastlane Match zum automatischen Abrufen von Zertifikaten aus einem Repository oder das Jenkins Credentials Binding Plugin zur sicheren Schlüsselspeicherung zu verwenden.
pipeline {
agent { label 'macos' }
environment {
MATCH_PASSWORD = credentials('match-password')
}
stages {
stage('Install Dependencies') {
steps {
sh 'pod install --repo-update'
}
}
stage('Build and Test') {
steps {
sh 'fastlane scan'
sh 'fastlane gym'
}
}
stage('Deploy to TestFlight') {
when { branch 'main' }
steps {
sh 'fastlane upload_testflight'
}
}
}
}
Für iOS-Unit-Tests verwenden Sie xcodebuild test mit Simulator-Angabe. Jenkins unterstützt die Veröffentlichung von XCTest-Berichten über das JUnit-Plugin — konvertieren Sie .xcresult in das XML-Format, um Testergebnisse in das Build-Dashboard einzubetten.
Android-Builds in Jenkins werden auf Linux-Agents mit installiertem Java JDK, Android SDK, Gradle und Emulatoren ausgeführt. Die Pipeline umfasst Stufen: Linter-Prüfung, Unit-Tests, APK- oder AAB-Build, instrumentierte Tests auf dem Emulator und Veröffentlichung in der Google Play Console.
Zur Verwaltung des Android SDK verwenden Sie sdkmanager in der Jenkinsfile, um die erforderlichen Plattformen und Build-Tools zu installieren. Es wird empfohlen, die Verzeichnisse .gradle und .android zwischen Builds zwischenzuspeichern, um nachfolgende Ausführungen zu beschleunigen.
pipeline {
agent { label 'linux' }
stages {
stage('Lint Check') {
steps {
sh './gradlew lint'
}
}
stage('Unit Tests') {
steps {
sh './gradlew testDebugUnitTest'
}
}
stage('Build APK') {
steps {
sh './gradlew assembleDebug'
}
post {
success {
archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk'
}
}
}
}
}
Instrumentierte Tests auf Android erfordern einen laufenden Emulator. Jenkins unterstützt das Android Emulator Plugin, das vor Tests automatisch einen Emulator erstellt und startet. Für physische Geräte verwenden Sie Firebase Test Lab — die Integration ist über das Google Cloud SDK Plugin verfügbar.
Das Jenkins-Plugins-System ist ein entscheidender Vorteil der Plattform. Über 1800 Plugins decken alle CI/CD-Phasen ab: von der Integration mit Versionskontrollsystemen bis zur Bereitstellung in Cloud-Diensten. Jedes Plugin fügt neue Schritte zur Pipeline hinzu und erweitert die Weboberfläche um zusätzliche Konfigurationsseiten.
Für die mobile Entwicklung ist eine Reihe von Plugins zur Anmeldedaten-Verwaltung unerlässlich: Credentials Binding zum Speichern von App Store Connect-Tokens und Google Play-Dienstkonten. Das Xcode Integration Plugin fügt Build-Schritte für iOS-Anwendungen über die Jenkins-Oberfläche hinzu.
| Plugin | Zweck | Plattform |
|---|---|---|
| Git Integration | Repository-Klonen, Branch- und Pull-Request-Verwaltung | iOS, Android |
| Gradle Plugin | Ausführung von Gradle-Aufgaben für Android-Builds mit Berichtsveröffentlichung | Android |
| Xcode Integration | Erstellung von iOS-Projekten ohne Jenkinsfile | iOS |
| Docker Pipeline | Ausführung von Builds in Docker-Containern mit isolierter Umgebung | iOS, Android |
| Slack Notification | Build-Status-Benachrichtigungen in Slack-Kanälen | iOS, Android |
Das Docker Pipeline Plugin ermöglicht die Ausführung jeder Build-Stufe in einem separaten Container, was die Umgebungsreproduzierbarkeit gewährleistet und das Problem von Umgebungsunterschieden beseitigt. Für Android-Builds verwenden Sie Images mit vorinstalliertem Android SDK aus der Gradle-Community.
Die Wahl zwischen Jenkins und Travis CI hängt von der Teamgröße, dem Budget und den Infrastrukturanforderungen ab. Jenkins ist eine selbstgehostete Lösung mit vollständiger Kontrolle, die einen dedizierten Server und Administrator erfordert. Travis CI ist ein Cloud-Dienst mit nutzungsabhängiger Abrechnung, der keine Serververwaltung erfordert.
Für Startups und kleine Teams ist Travis CI vorzuziehen — keine Infrastrukturkosten, einfache GitHub-Integration und vorgefertigte Builds für iOS und Android. Für Enterprise-Projekte bietet Jenkins Vorteile: eigene macOS-Runner, Einhaltung unternehmenseigener Sicherheitsrichtlinien und fein granulare Pipeline-Konfiguration über die Jenkinsfile.
Laut der Stack Overflow Survey 2025 verwenden 42% der professionellen Entwickler Jenkins gegenüber 12% bei Travis CI. Travis CI bleibt jedoch in der Open-Source-Community aufgrund seines kostenlosen Plans für öffentliche Repositories und der minimalen Einstiegshürde beliebt.
Jenkins bietet eine Reihe von Vorteilen, die es zum CI/CD-Standard für die mobile Entwicklung machen. Die kostenlose MIT-Lizenz ermöglicht die uneingeschränkte Nutzung des Servers in kommerziellen Projekten, und der Open-Source-Code garantiert Herstellerunabhängigkeit und Sicherheitsüberprüfbarkeit.
Die Master-Agent-Architektur ermöglicht horizontale Skalierung — das Hinzufügen eines neuen Agents erhöht den Pipelinendurchsatz linear. Jenkins unterstützt dynamische Agents in Kubernetes über Jenkins X, wodurch Builder bei Bedarf automatisch erstellt und zerstört werden können.
Das Plugin-Ökosystem deckt alle modernen Tools ab: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. Wenn kein fertiges Plugin verfügbar ist, können Sie eine eigene Erweiterung in Java schreiben oder Pipeline Shared Libraries zur Wiederverwendung von Code zwischen Projekten verwenden.
Häufig gestellte Fragen
Jenkins ist ein Open-Source-CI/CD-Server zur Automatisierung des Erstellens, Testens und Auslieferns von iOS- und Android-Anwendungen. Er läuft auf Java, unterstützt verteilte Builds durch eine Master-Agent-Architektur und wird über eine Weboberfläche oder eine Jenkinsfile im Projekt-Repository konfiguriert.
Jenkins unterscheidet sich durch seine selbstverwaltete Infrastruktur und sein Plugin-System. Im Gegensatz zu Travis CI oder GitHub Actions erfordert Jenkins die Installation auf einem eigenen Server, bietet aber die volle Kontrolle über die Build-Umgebung, Sicherheit und Zugriffsrichtlinien für Unternehmensprojekte.
Jenkins Pipeline ist die Definition eines CI/CD-Prozesses als Groovy-Code, der in einer Jenkinsfile gespeichert ist. Die Pipeline besteht aus Stufen (stages) und Schritten (steps), die das Erstellen, Testen und Bereitstellen beschreiben. Sie unterstützt zwei Syntaxvarianten: Declarative für einfache Szenarien und Scripted für komplexe.
Für iOS sind Xcode Integration und Keychain Manager unerlässlich. Für Android — Gradle Plugin und Android Emulator. Für beide Plattformen: Git Integration, Credentials Binding, Docker Pipeline und Slack Notification für Build-Status-Benachrichtigungen.
Installieren Sie Jenkins auf einem Server, fügen Sie einen macOS-Agent für iOS und einen Linux-Agent für Android mit installierten SDKs hinzu. Erstellen Sie eine Jenkinsfile im Repository-Stammverzeichnis, die die Build-Stufen beschreibt. Für iOS verwenden Sie Fastlane zur Codesignierung; für Android verwenden Sie Gradle-Aufgaben mit Abhängigkeits-Caching.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch