ビルド バリアントごとに異なるバージョンのアプリがある場合は、 バリアントごとにカスタム保持ルールを作成します。たとえば、アプリに無料版と有料版があり、機能と依存関係が異なる場合は、各階層に独自の保持ルールを設定する必要があります。
保持ルールを作成する
AGP 9.3 以降の場合:
アプリのフレーバーごとに特定の保持ルールを維持するには、フレーバーごとの保持ルールを該当する保持ルール ソースセット に配置します。たとえば、
flavor1 の場合は、
app/src/flavor1/keepRules/flavor1-rules.keep に保持ルールを記述します。
AGP 9.3 以降(Kotlin)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
// Place your keep rules in app/src/flavor1/keepRules/ with the file suffix .keep
}
create("flavor2") {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
AGP 9.3 以降(Groovy)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
AGP バージョン 9.3 より前の場合:
ビルド バリアントに固有の保持ルールを作成するには、productFlavors の下の対応するフレーバー ブロックに proguardFiles プロパティを追加します。
ルールファイル
flavor2‑rules.pro を flavor2 プロダクト フレーバーに追加するビルドスクリプトを次に示します。
従来の DSL(Kotlin)
android {
...
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
}
create("flavor2") {
proguardFile("flavor2-rules.pro")
}
}
}
従来の DSL(Groovy)
android {
...
buildTypes {
release {
minifyEnabled = true
shrinkResources = true
proguardFiles(
getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
)
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
proguardFile 'flavor2-rules.pro'
}
}
}
参考情報
- 保持するリソースをカスタマイズする: 保持ルールを追加する方法について説明します リソースの。