Memasukkan variabel build ke dalam manifes

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Jika perlu memasukkan variabel ke dalam file AndroidManifest.xml yang ditentukan dalam file build.gradle, Anda dapat melakukannya dengan properti manifestPlaceholders. Properti ini menggunakan peta key-value pair, seperti yang ditunjukkan di bawah ini:

Groovy

android {
    defaultConfig {
        manifestPlaceholders = [hostName:"www.example.com"]
    }
    ...
}

Kotlin

android {
    defaultConfig {
        manifestPlaceholders["hostName"] = "www.example.com"
    }
    ...
}

Selanjutnya, Anda dapat memasukkan salah satu placeholder ke dalam file manifes sebagai nilai atribut, seperti ini:

<intent-filter ... >
    <data android:scheme="https" android:host="${hostName}" ... />
    ...
</intent-filter>

Secara default, alat build juga memberikan ID aplikasi untuk aplikasi dalam placeholder ${applicationId}. Nilai ini selalu cocok dengan ID aplikasi akhir untuk build saat ini (termasuk perubahan menurut varian build. Hal ini berguna saat Anda ingin menggunakan namespace unik untuk ID seperti tindakan intent, bahkan di antara varian build Anda.

Misalnya, jika file build.gradle Anda seperti ini:

Groovy

android {
    defaultConfig {
        applicationId "com.example.myapp"
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
}

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"
    }
    productFlavors {
        create("free") {
            applicationIdSuffix = ".free"
        }
        create("pro") {
            applicationIdSuffix = ".pro"
        }
    }
}

Anda dapat memasukkan ID aplikasi dalam manifes Anda, seperti ini:

<intent-filter ... >
    <action android:name="${applicationId}.TRANSMOGRIFY" />
    ...
</intent-filter>

Dan hasil manifes saat Anda membuat ragam produk "free" adalah:

<intent-filter ... >
   <action android:name="com.example.myapp.free.TRANSMOGRIFY" />
    ...
</intent-filter>

Untuk informasi selengkapnya, baca Menetapkan ID aplikasi.