Kotzilla Gradle plugin configuration
This page documents the Kotzilla Gradle plugin configuration. It applies to all setups, whether you declare the plugin through a Version Catalog (the default in the setup guides) or through the legacy Gradle configuration.
Kotzilla DSL Reference
The kotzilla {} block provides configuration options for the Gradle plugin:
kotzilla {
enabled = true // Master switch (default: true)
versionName = "1.0.0" // Auto-detected if omitted
site = "gateway.kotzilla.io" // Custom endpoint (optional)
projectFile = "kotzilla.json" // Custom config path (optional)
uploadMappingFile = true // ProGuard mapping upload (default: true)
composeInstrumentation = true // Compose NavHost tracking (default: true)
obfuscateGeneratedConfig = true // Encodes API key to avoid visibility in bundle (default: true)
autoInjectXcodeScript = true // iOS dSYM script (default: true)
autoAddDependencies = true // Auto-add SDK deps (default: true)
displayLogs = false // Debug logging (default: false)
skipBuildReportFailure = false // Don't fail the build on a FAIL report (default: false)
}
Default Changes in SDK 2.0.x
| Option | 1.4.x Default | 2.0.x Default |
|---|---|---|
composeInstrumentation | false | true |
autoInjectXcodeScript | false | true |
obfuscateGeneratedConfig | N/A | true |
autoAddDependencies | N/A | true |
Build Report
Since SDK 2.2.0, Gradle builds print the Kotzilla report for the selected app version, run by auto-wired kotzillaBuildReport{Variant} tasks, so regressions are visible at build time without leaving your build.
By default the build fails when the report status is FAIL. To keep the report informational without blocking the build, set skipBuildReportFailure = true in the kotzilla {} block of your app, shared, or ComposeApp module:
kotzilla {
skipBuildReportFailure = true
}
The build report applies to all project types (Android, Android with Compose, KMP, CMP, and SDK Library for Android).
Multi-module Compose Navigation
In projects with multi-module Compose Navigation, the Kotzilla Gradle plugin must process the modules where Compose route code is compiled. If route code lives in feature modules and the plugin is applied only in, for example, :app or :shared, screens owned by those feature modules may not be reported.
The recommended setup is a single root-level plugin application so every route-owning module is covered:
// root build.gradle.kts
plugins {
id("io.kotzilla.kotzilla-plugin")
}
Alternatively, apply the plugin directly in every module that owns Compose route code. Builds using Gradle isolated projects require this per-module approach. Feature modules do not need a Kotzilla API key; only your app or main runtime module does.