Build Config in mobilen Apps — was es ist, Einrichtung und Funktionsprinzip

Autor: IT Sectr Veröffentlicht: 2026-06-01 Lesezeit: 9 Min.

Build Config umfasst Build-Parameter: Build-Typen, Kompilierungsflags, Signierschlüssel und SDK-Versionen, die bestimmen, wie eine Anwendung für verschiedene Umgebungen erstellt wird. Laut Android Developers Guide (2026) unterstützt das Gradle-Build-System Product Flavors und Build Types für flexible Konfiguration. Build Config automatisiert das Umschalten zwischen Debug und Release ohne manuelle Codeänderungen.

Wichtige Punkte

  • Build Config ist ein System von Build-Parametern, das definiert, wie, mit welchen Flags und für welche Plattform die Anwendung erstellt wird.
  • Gradle in Android unterstützt Build Types (Debug, Release) und Product Flavors (Demo, Vollversion) mit unabhängigen Konfigurationen.
  • Xcode verwendet Build Configurations (Debug, Release) und Build Settings zur Konfiguration von Kompilierungsflags und Signierung.
  • BuildConfig.java ist eine generierte Klasse in Android, die Felder mit Werten der aktuellen Build-Konfiguration enthält.
  • Automatisierung von Build Config integriert sich mit CI/CD-Pipelines (GitLab CI, GitHub Actions) zum Erstellen verschiedener Flavors.

Was ist Build Config in der mobilen Entwicklung

Build Config ist eine Sammlung von Einstellungen, die den Kompilierungs-, Build- und Paketierungsprozess einer mobilen Anwendung definieren. Die Build-Konfiguration umfasst die Auswahl der Zielplattform, der minimalen SDK-Version, Optimierungsflags, Signierschlüssel und Umgebungsvariablen.

Moderne Mobilprojekte haben selten eine einzige Build-Konfiguration. Normalerweise haben sie mehrere: Debug (für die Entwicklung mit Debugging), Release (für die Produktion mit Optimierung), Staging (für Tests mit echten Daten) und verschiedene Flavors (Demo, Vollversion, Enterprise).

Laut der Gradle Build Tool Survey (2025) verwendet ein durchschnittliches Android-Projekt 3,2 verschiedene Build-Konfigurationen, während ein iOS-Projekt 2,8 verwendet. Jede Konfiguration kann eigene Kompilierungsflags, Signierzertifikate und Server-URLs haben.

Die Hauptaufgabe von Build Config ist die Automatisierung des Wechsels zwischen diesen Konfigurationen. Anstatt die Server-URL oder das Debug-Flag manuell zu ändern, wählt der Entwickler den gewünschten Build Variant in der IDE aus, und das Build-System setzt die entsprechenden Parameter ein.

Die richtige Einrichtung von Build Config wirkt sich kritisch auf die Anwendungssicherheit aus: Debug-Builds enthalten detaillierte Logs, DB-Inspektor und Debug-Endpunkte, die physisch aus der Release-Binärdatei ausgeschlossen werden müssen. Gradle löst dies durch Build Types: Debug kann das Flag debuggable true haben, Release — minifyEnabled true mit ProGuard. iOS erreicht dasselbe durch Swift Active Compilation Conditions, bei denen Code innerhalb von #if DEBUG in der Release-Konfiguration nicht kompiliert wird.

Build Config in Android: Gradle und BuildConfig

Android verwendet das Gradle-Build-System mit zwei Schlüsselkonzepten: Build Types und Product Flavors. Ihre Kombination bildet Build Variants — jede Variante hat ihre eigene vollständige Build-Konfiguration.

Build Types: Debug und Release

Build Type ist eine Konfiguration, die definiert, wie die Anwendung erstellt wird. Standardmäßig erstellt Gradle zwei Typen: Debug (mit Debugging, ohne Verschleierung) und Release (mit ProGuard/R8, für die Veröffentlichung signiert). Der Entwickler kann eigene Typen hinzufügen: Staging, Benchmark, QA.

kotlin
// build.gradle.kts
android {
    buildTypes {
        debug {
            isDebuggable = true
            buildConfigField("String", "API_URL", "\"http://dev.api.com\"")
        }
        release {
            isMinifyEnabled = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            buildConfigField("String", "API_URL", "\"https://prod.api.com\"")
        }
    }
}

Product Flavors: Anwendungsversionen

Product Flavors ermöglichen es, verschiedene Versionen derselben Anwendung aus einer einzigen Codebasis zu erstellen. Zum Beispiel: kostenlose Version mit Werbung, kostenpflichtige Version ohne Werbung und Enterprise-Version mit zusätzlichen Funktionen. Jeder Flavor kann eine eigene applicationId, eigene Ressourcen und SDK-Abhängigkeiten haben.

kotlin
android {
    productFlavors {
        register("demo") {
            applicationId = "com.example.app.demo"
            versionNameSuffix = "-demo"
        }
        register("full") {
            applicationId = "com.example.app"
            versionNameSuffix = ""
        }
    }
}

BuildConfig-Klasse: Zugriff aus dem Code

Für jeden Build Variant generiert Gradle eine BuildConfig-Klasse mit Konfigurationsfeldern. Der Entwickler fügt benutzerdefinierte Felder über buildConfigField hinzu, während Standardfelder (DEBUG, APPLICATION_ID, BUILD_TYPE, VERSION_CODE, FLAVOR) automatisch erstellt werden.

kotlin
// BuildConfig im Code verwenden
class NetworkModule {
    fun createApiClient(): ApiClient {
        return if (BuildConfig.DEBUG) {
            ApiClient(
                baseUrl = BuildConfig.API_URL,
                interceptor = HttpLoggingInterceptor()
            )
        } else {
            ApiClient(baseUrl = BuildConfig.API_URL)
        }
    }
}

BuildConfig ermöglicht auch das Aktivieren oder Deaktivieren von Funktionen zur Build-Zeit. Zum Beispiel können Sie ein Feld FEATURE_CHAT_ENABLED hinzufügen und den Chat nur in der Vollversion der Anwendung aktivieren, ohne Laufzeitprüfungen und bedingte Operatoren im Code.

Zum Debuggen von Netzwerkanfragen ermöglicht BuildConfig mit dem DEBUG-Feld das automatische Anhängen von HttpLoggingInterceptor in OkHttp nur für Debug-Builds. Dies garantiert, dass keine HTTP-Anfrage in der Produktion protokolliert wird, selbst wenn der Entwickler versehentlich vergisst, die Protokollierung vor dem Erstellen des Releases zu entfernen.

Build Config in iOS: Xcode und Build Settings

Im iOS-Ökosystem wird Build Config über Xcode Build Settings verwaltet — eine Tabelle von Parametern, bei der jeder Parameter unterschiedliche Werte für verschiedene Konfigurationen (Debug, Release, Staging) haben kann.

Xcode Build Configurations

Standardmäßig erstellt Xcode zwei Konfigurationen: Debug (für die Entwicklung, ohne Optimierungen) und Release (für die Produktion, mit -Os-Optimierung). Der Entwickler kann eigene Konfigurationen über das Menü Project > Info > Configurations hinzufügen.

Für jede Konfiguration werden Build Settings konfiguriert: Compiler-Flags (OTHER_SWIFT_FLAGS, GCC_PREPROCESSOR_DEFINITIONS), Codesignierung (CODE_SIGN_IDENTITY), Provisioning-Profile und Berechtigungen. Xcode schreibt diese Einstellungen in die Datei project.pbxproj.

xcconfig: Externe Konfigurationsdateien

Zur bequemen Verwaltung von Build Settings verwenden iOS-Entwickler .xcconfig-Dateien — Textdateien mit Parametern im Format KEY = VALUE. Dies ist analog zu .env für Xcode: Werte werden mit dem Projekt verbunden und überschreiben Einstellungen in project.pbxproj.

env
// Debug.xcconfig
BUNDLE_ID_SUFFIX = .debug
API_BASE_URL = http://localhost:8080
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
CODE_SIGN_IDENTITY = Apple Development

// Release.xcconfig
BUNDLE_ID_SUFFIX =
API_BASE_URL = https://api.production.com
SWIFT_ACTIVE_COMPILATION_CONDITIONS =
CODE_SIGN_IDENTITY = Apple Distribution

Info.plist: Laufzeitkonfiguration

Ein Teil der Build Config-Parameter landet in Info.plist — der Manifestdatei der iOS-Anwendung. Über Info.plist werden URL-Schemata, Berechtigungen (Kamera, Mikrofon), Hintergrundmodi und die Anmeldung bei Drittanbieterdiensten konfiguriert.

Werte aus xcconfig können in Info.plist über die Syntax $(VARIABLE_NAME) eingesetzt werden. Zum Beispiel wird $(API_BASE_URL) in Info.plist entsprechend der aktiven Build-Konfiguration aufgelöst. Dies zentralisiert die Verwaltung von Umgebungsparametern für alle Apple-Plattformen.

Build Config in CI/CD-Pipelines

In modernen Projekten integriert sich Build Config mit Continuous-Integration-Systemen: GitLab CI, GitHub Actions, Bitrise, CircleCI. Jede Pipeline kann Build Config-Parameter über Umgebungsvariablen des CI/CD-Systems überschreiben.

Gradle Build Config in CI

Für Android führt die CI-Pipeline Gradle mit dem angegebenen Build Variant aus: ./gradlew assembleFullRelease. Signierparameter werden über CI-Variablen übergeben: STORE_PASSWORD, KEY_ALIAS. Gradle liest sie aus der Laufzeitumgebung und setzt sie in build.gradle.kts ein.

kotlin
// build.gradle.kts — Lesen von CI-Variablen
android {
    signingConfigs {
        register("release") {
            storeFile = file(System.getenv("KEYSTORE_PATH") ?: "debug.keystore")
            storePassword = System.getenv("STORE_PASSWORD") ?: ""
            keyAlias = System.getenv("KEY_ALIAS") ?: "key"
            keyPassword = System.getenv("KEY_PASSWORD") ?: ""
        }
    }
}

Xcode Build Config in CI

Für iOS verwendet CI xcodebuild mit Konfigurationsflags: -configuration Release. Signierzertifikate werden über CI-Secrets und Profile über Apple Developer Portal API oder Fastlane match bereitgestellt.

Das Tool Fastlane automatisiert die Build Config-Verwaltung: generiert xcconfig, aktualisiert Versionen in Info.plist, signiert erstellte IPAs und lädt sie in App Store Connect hoch. Fastlane gym (Build) und match (Signierung) sind der Standard für iOS-CI-Pipelines.

Laut dem Bitrise Build Report (2025) reduzieren Projekte mit in CI eingerichteter Build Config die manuelle Build-Konfigurationszeit um 73% und verringern Signierfehler um 89%. Automatisierte Build Config ist ein obligatorisches Element einer produktionsreifen Pipeline.

Ein weiterer wichtiger Aspekt ist die Parametrisierung der Versionierung durch Build Config. Gradle ermöglicht das Lesen von versionCode und versionName aus CI-Variablen und deren dynamisches Einsetzen in build.gradle.kts, wodurch die Versionsdesynchronisation zwischen Entwicklern vermieden wird. In iOS wird eine ähnliche Aufgabe durch agvtool (Apple Generic Versioning Tool) gelöst, das die Build-Nummer basierend auf Git-Tags oder der CI-Build-Nummer erhöhen kann.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Build Type und Product Flavor in Android?

Build Type (Debug, Release) definiert wie die Anwendung erstellt wird: mit oder ohne Debugging, mit oder ohne Optimierung. Product Flavor (Demo, Vollversion) definiert welche Version erstellt wird: unterschiedliche applicationId, SDK, Ressourcen. Ihre Kombination wird als Build Variant bezeichnet.

Wie übergibt man einen Wert aus Build Config an Android-Code?

Über die Methode buildConfigField in build.gradle.kts. Das Feld wird der automatisch generierten BuildConfig-Klasse hinzugefügt und ist im Code als BuildConfig.FELDNAME verfügbar. Bei Zeichenketten muss der Wert in escaped Anführungszeichen gesetzt werden.

Wie konfiguriert man mehrere Umgebungen (Development, Staging, Production) in iOS?

Über .xcconfig-Dateien — eine pro Umgebung. Unter Project > Info > Configurations werden Debug/Staging/Release-Konfigurationen hinzugefügt, die jeweils auf ihre eigene xcconfig verweisen. Werte werden über die Syntax $(VAR_NAME) in Info.plist eingesetzt.

Warum BuildConfig anstelle von Flags im Code verwenden?

BuildConfig trennt die Build-Konfiguration von der Anwendungslogik. Flags im Code erfordern manuelle Änderungen und Neukompilierung beim Wechsel der Umgebung. BuildConfig wechselt alle Parameter automatisch bei der Auswahl eines Build Variants in der IDE oder CI.

Können verschiedene Flavors unterschiedliche Abhängigkeiten haben?

Ja, Gradle erlaubt die Angabe von Abhängigkeiten für bestimmte Flavors: demoImplementation und fullImplementation. Die Demo-Version kann eine Analysebibliothek enthalten, die Vollversion jedoch nicht. Dies reduziert die APK-Größe für verschiedene Flavors.

Zusammenfassung

  • Build Config ist ein System von Build-Parametern, das steuert, wie eine Anwendung kompiliert wird und für welche Umgebung.
  • Android verwendet Gradle mit Build Types, Product Flavors und der generierten BuildConfig-Klasse, um auf Parameter aus dem Code zuzugreifen.
  • iOS verwendet Xcode Build Settings und .xcconfig-Dateien zum Konfigurieren von Kompilierungsflags, Signierung und Server-URLs.
  • Build Variant ist eine Kombination aus Build Type und Product Flavor, die eine eindeutige Build-Konfiguration mit eigenen Ressourcen erstellt.
  • CI/CD-Integration ermöglicht die Übergabe von Build Config-Parametern über Umgebungsvariablen, wodurch manuelle Einrichtung entfällt.
  • Fastlane und Gradle automatisieren Signierung, Versionierung und Veröffentlichung für beide Plattformen.

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.

Projekt besprechen

Lesen Sie auch