Firebase Bom 和 Gradle 插件

问题描述 投票:0回答:1

我意识到,虽然我使用的是 firebase bom,但每次更新 bom 时,我仍然需要更新 gradle 插件的产品版本(crashlytics、perf、appdistribution)。

我做错了什么吗?有没有办法让我在我的

libs.versions.toml
中只声明BOM版本?

libs.versions.toml

[versions]
firebaseBom = "33.0.0"
firebaseAppDistributionPlugin = "5.0.0"
firebaseCrashlyticsPlugin = "3.0.1"
firebasePerfPlugin = "1.4.2"

[libraries]
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-analytics-ktx = { module = "com.google.firebase:firebase-analytics-ktx" }
firebase-crashlytics-ktx = { module = "com.google.firebase:firebase-crashlytics-ktx" }
firebase-messaging-ktx = { module = "com.google.firebase:firebase-messaging-ktx" }
firebase-perf-ktx = { module = "com.google.firebase:firebase-perf-ktx" }

[plugins]
firebase-appdistribution = { id = "com.google.firebase.appdistribution", version.ref = "firebaseAppDistributionPlugin" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" }
firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" }

项目的build.gradle.kts

plugins {
    alias(libs.plugins.firebase.appdistribution) apply false
    alias(libs.plugins.firebase.crashlytics) apply false
    alias(libs.plugins.firebase.perf) apply false
}

应用程序的build.gradle.kts

plugins {
    alias(libs.plugins.firebase.appdistribution)
    alias(libs.plugins.firebase.crashlytics)
    alias(libs.plugins.firebase.perf)
}

dependencies {
    implementation(platform(libs.firebase.bom))
    implementation(libs.firebase.analytics.ktx)
    implementation(libs.firebase.crashlytics.ktx) { isTransitive = true }
    implementation(libs.firebase.perf.ktx)
}
android firebase gradle crashlytics
1个回答
0
投票

当您使用 Firebase Android BoM 时,在 libs.versions.toml 文件中声明 Firebase

library
依赖项时,无需指定各个库版本。正如我在您的文件中看到的,您已经这样做了,这是正确的。

另一方面,当您声明 Firebase App Distribution、Firebase Crashlytics 或 Firebase Performance Monitoring plugins 时,您必须显式声明版本。 BOM 版本适用于库,不适用于插件。

除此之外,您现在可以依赖主模块而不是 KTX 模块。这意味着无需为 Firebase 依赖项指定

-ktx

[libraries]
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-analytics-ktx = { module = "com.google.firebase:firebase-analytics" }
firebase-crashlytics-ktx = { module = "com.google.firebase:firebase-crashlytics" }
firebase-messaging-ktx = { module = "com.google.firebase:firebase-messaging" }
firebase-perf-ktx = { module = "com.google.firebase:firebase-perf" }
© www.soinside.com 2019 - 2024. All rights reserved.