Build Config v mobilních aplikacích — co to je, nastavení a princip fungování

Autor: IT Sectr Publikováno: 2026-06-01 Doba čtení: 9 min

Build Config zahrnuje parametry sestavení: typy buildů, překladové přepínače, podpisové klíče a verze SDK, které určují, jak se aplikace sestavuje pro různá prostředí. Podle Android Developers Guide (2026) systém sestavení Gradle podporuje Product Flavors a Build Types pro flexibilní konfiguraci. Build Config automatizuje přepínání mezi debug a release bez ruční změny kódu.

Klíčové body

  • Build Config — systém parametrů sestavení, který určuje, jak, s jakými přepínači a pro jakou platformu se aplikace sestavuje.
  • Gradle v Androidu podporuje Build Types (debug, release) a Product Flavors (demo, plná verze) s nezávislými konfiguracemi.
  • Xcode používá Build Configurations (Debug, Release) a Build Settings pro nastavení překladových přepínačů a podpisu.
  • BuildConfig.java — generovaná třída v Androidu obsahující pole s hodnotami aktuální konfigurace sestavení.
  • Automatizace Build Config se integruje s CI/CD pipeline (GitLab CI, GitHub Actions) pro sestavování různých flavorů.

Co je Build Config ve vývoji mobilních aplikací

Build Config — je soubor nastavení, který určuje proces překladu, sestavení a balení mobilní aplikace. Konfigurace sestavení zahrnuje výběr cílové platformy, minimální verze SDK, optimalizačních přepínačů, podpisových klíčů a proměnných prostředí.

Moderní mobilní projekty mívají jen zřídka jedinou konfiguraci sestavení. Obvykle jich je několik: debug (pro vývoj s laděním), release (pro produkci s optimalizací), staging (pro testování s produkčními daty) a různé flavory (demo, plná, firemní verze).

Podle průzkumu Gradle Build Tool Survey (2025) používá průměrný projekt Android 3.2 různých konfigurací sestavení a projekt iOS — 2.8. Každá konfigurace může mít vlastní překladové přepínače, podpisové certifikáty a URL adresy serverů.

Hlavním úkolem Build Config je automatizace přepínání mezi těmito konfiguracemi. Místo ruční změny URL adresy serveru nebo ladícího přepínače vybere vývojář požadovaný Build Variant v IDE a systém sestavení dosadí odpovídající parametry.

Správné nastavení Build Config má kritický vliv na bezpečnost aplikace: v debug buildu jsou zapnuty podrobné protokoly, inspektor databáze a ladicí endpointy, které musí být fyzicky vyloučeny z release binárního souboru. Gradle to řeší prostřednictvím Build Types: v debug lze nastavit přepínač debuggable true, v release — minifyEnabled true s ProGuard. iOS dosahuje stejného výsledku prostřednictvím Swift Active Compilation Conditions, kde se kód uvnitř #if DEBUG nepřekládá v konfiguraci release.

Build Config v Androidu: Gradle a BuildConfig

Android používá systém sestavení Gradle se dvěma klíčovými pojmy: Build Types a Product Flavors. Jejich kombinace vytváří Build Variants — každému variantu odpovídá úplná konfigurace sestavení.

Build Types: debug a release

Build Type — je konfigurace, která určuje, jak se aplikace sestavuje. Ve výchozím nastavení Gradle vytváří dva typy: debug (s laděním, bez obfuskace) a release (s ProGuard/R8, podepsaný pro publikaci). Vývojář může přidávat vlastní typy: 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: verze aplikace

Product Flavors umožňují vytvářet různé verze jedné aplikace z jednoho zdrojového kódu. Například: bezplatná verze s reklamou, placená verze bez reklamy a firemní verze s dalšími funkcemi. Každý flavor může mít vlastní applicationId, prostředky a závislosti SDK.

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

Třída BuildConfig: přístup z kódu

Pro každý Build Variant Gradle generuje třídu BuildConfig s konfiguračními poli. Vývojář přidává vlastní pole pomocí buildConfigField, zatímco standardní pole (DEBUG, APPLICATION_ID, BUILD_TYPE, VERSION_CODE, FLAVOR) se vytvářejí automaticky.

kotlin
// Použití BuildConfig v kódu
class NetworkModule {
    fun createApiClient(): ApiClient {
        return if (BuildConfig.DEBUG) {
            ApiClient(
                baseUrl = BuildConfig.API_URL,
                interceptor = HttpLoggingInterceptor()
            )
        } else {
            ApiClient(baseUrl = BuildConfig.API_URL)
        }
    }
}

BuildConfig také umožňuje zapínat nebo vypínat funkce ve fázi sestavení. Lze například přidat pole FEATURE_CHAT_ENABLED a zapnout chat pouze v plné verzi aplikace, bez kontrol za běhu a podmíněných operátorů v kódu.

Pro ladění síťových požadavků umožňuje BuildConfig s polem DEBUG automaticky připojit HttpLoggingInterceptor v OkHttp pouze pro debug buildu. To zaručuje, že v produkci nebude zaznamenán žádný požadavek HTTP, i když vývojář zapomene před sestavením release odebrat logování.

Build Config v iOS: Xcode a Build Settings

V ekosystému iOS se Build Config spravuje prostřednictvím Xcode Build Settings — tabulky parametrů, kde každý parametr může mít různé hodnoty pro různé konfigurace (Debug, Release, Staging).

Xcode Build Configurations

Ve výchozím nastavení Xcode vytváří dvě konfigurace: Debug (pro vývoj, bez optimalizace) a Release (pro produkci, s optimalizací -Os). Vývojář může přidávat vlastní konfigurace prostřednictvím nabídky Project > Info > Configurations.

Pro každou konfiguraci se nastavují Build Settings: překladačové přepínače (OTHER_SWIFT_FLAGS, GCC_PREPROCESSOR_DEFINITIONS), podpisový kód (CODE_SIGN_IDENTITY), provisioning profily a entitlements. Xcode ukládá tato nastavení do souboru project.pbxproj.

xcconfig: externí konfigurační soubory

Pro pohodlnou správu Build Settings používají vývojáři iOS soubory .xcconfig — textové soubory s parametry ve formátu KEY = VALUE. Je to obdoba .env pro Xcode: hodnoty se připojí k projektu a přepisují nastavení v 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: konfigurace za běhu

Část parametrů Build Config se dostává do Info.plist — souboru manifestu aplikace iOS. Prostřednictvím Info.plist se nastavují schémata URL, oprávnění (kamera, mikrofon), režimy na pozadí a konfigurace přihlašování přes služby třetích stran.

Hodnoty z xcconfig lze do Info.plist vložit pomocí syntaxe $(VARIABLE_NAME). Například $(API_BASE_URL) v Info.plist se rozbalí podle aktivní konfigurace sestavení. To centralizuje správu parametrů prostředí pro všechny platformy Apple.

Build Config v CI/CD pipeline

V moderních projektech se Build Config integruje se systémy průběžné integrace: GitLab CI, GitHub Actions, Bitrise, CircleCI. Každá pipeline může přepisovat parametry Build Config prostřednictvím proměnných prostředí systému CI/CD.

Gradle Build Config v CI

Pro Android spouští CI pipeline Gradle s uvedením Build Variant: ./gradlew assembleFullRelease. Parametry podpisu se předávají prostřednictvím proměnných CI: STORE_PASSWORD, KEY_ALIAS. Gradle je čte z běhového prostředí a dosazuje do build.gradle.kts.

kotlin
// build.gradle.kts — čtení z CI proměnných
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 v CI

Pro iOS používá CI xcodebuild s konfiguračními přepínači: -configuration Release. Podpisové certifikáty se dodávají prostřednictvím CI secrets a profily — prostřednictvím Apple Developer Portal API nebo Fastlane match.

Nástroj Fastlane automatizuje správu Build Config: generuje xcconfig, aktualizuje verze v Info.plist, podepisuje sestavené IPA soubory a nahrává je do App Store Connect. Fastlane gym (sestavení) a match (podpis) — standard CI pipeline pro iOS.

Podle Bitrise Build Report (2025) projekty s nakonfigurovaným Build Config v CI zkracují čas ručního nastavení sestavení o 73% a snižují počet chyb podpisu o 89%. Automatizovaný Build Config — povinný prvek pipeline production-ready.

Dalším důležitým aspektem je parametrizace verzování prostřednictvím Build Config. Gradle umožňuje číst versionCode a versionName z proměnných CI a dynamicky je dosazovat do build.gradle.kts, což eliminuje desynchronizaci verzí mezi vývojáři. V iOS se podobný úkol řeší prostřednictvím agvtool (Apple Generic Versioning Tool), který umí zvyšovat číslo buildu na základě git tagů nebo čísla buildu v CI.

Často kladené otázky

Jaký je rozdíl mezi Build Type a Product Flavor v Androidu?

Build Type (debug, release) určuje, jak se aplikace sestavuje: s laděním nebo bez, s optimalizací nebo bez. Product Flavor (demo, full) určuje, která verze se sestavuje: různé applicationId, SDK, prostředky. Jejich kombinace se nazývá Build Variant.

Jak předat hodnotu z Build Config do kódu Androidu?

Prostřednictvím metody buildConfigField v build.gradle.kts. Pole se přidá do automaticky generované třídy BuildConfig a v kódu je dostupné jako BuildConfig.FIELD_NAME. Pro řetězce je třeba hodnotu obalit do escapovaných uvozovek.

Jak nakonfigurovat více prostředí (development, staging, production) v iOS?

Prostřednictvím souborů .xcconfig — jeden pro každé prostředí. V Project > Info > Configurations se přidají konfigurace Debug/Staging/Release, každá odkazuje na vlastní xcconfig. Hodnoty se do Info.plist vkládají pomocí syntaxe $(VAR_NAME).

Proč používat BuildConfig místo přepínačů v kódu?

BuildConfig odděluje konfiguraci sestavení od logiky aplikace. Přepínače v kódu vyžadují ruční změnu a překlad při přepínání prostředí. BuildConfig přepíná všechny parametry automaticky při výběru Build Variant v IDE nebo CI.

Lze mít různé závislosti pro různé flavory?

Ano, Gradle umožňuje uvádět závislosti pro konkrétní flavory: demoImplementation a fullImplementation. Demo verze může připojit knihovnu pro analytiku, plná verze — ne. To zmenšuje velikost APK pro různé flavory.

Shrnutí

  • Build Config — systém parametrů sestavení, který řídí, jak se aplikace překládá a pro jaké prostředí.
  • Android používá Gradle s Build Types, Product Flavors a generovanou třídou BuildConfig pro přístup k parametrům z kódu.
  • iOS používá Xcode Build Settings a soubory .xcconfig pro nastavení překladových přepínačů, podpisu a URL adres serverů.
  • Build Variant — kombinace Build Type a Product Flavor vytvářející jedinečnou konfiguraci sestavení s vlastními prostředky.
  • Integrace CI/CD umožňuje předávat parametry Build Config prostřednictvím proměnných prostředí, čímž odpadá ruční nastavení.
  • Fastlane a Gradle automatizují podepisování, verzování a publikaci pro obě platformy.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také