通过 gradle 更新相同的 APK 而不是创建新的 APK 的 Firebase 应用分发

标签 firebase firebase-app-distribution

我最近在我的应用中集成了 Firebase 应用分发并使用了 Firebase 控制台。我曾经生成 APK 并通过控制台手动上传并分发应用程序。我太天真了。然后我开始知道整个过程可以通过 FaSTLane 或 Gradle 应用程序分发自动化。支持。感谢 this,我成功地通过 gradle 集成了应用程序分发.

但我很快发现,当我使用控制台时,无论版本名称或版本代码如何,都会为每个新 APK 创建一个新条目。即使我没有更改 APK 版本代码或名称,也会创建新的 APK 条目。但是,当我通过 Gradle 执行此操作时,它会一次又一次地更新同一个 APK,直到我更改版本代码和名称。

已经阅读了文档,但没有提及这一点。如果我想在应用程序分发控制台中为其添加新条目,我是否需要为每次上传更改版本代码和名称?

build.gradle(app)

buildTypes {
     debug{
         firebaseAppDistribution {
             appId = "MY_APP_ID"
             releaseNotesFile = "app/releasenotes.txt"
             groups = "test"
         }
     }

上传我运行 ./gradlew assembleDebug appDistributionUploadDebug

最佳答案

我在尝试推送功能分支构建时遇到了同样的问题,我不想有任何不同的版本代码

我做了一些尝试和错误来解决这个问题,所以我的解决方案有点开箱即用。

解决方案一

首先我试着看看是什么问题,我添加了一个生成时间戳的 groovy 方法

static def getDate() {
    return new Date().format('yyyyMMddHHmm')
}

然后我更改了 buildType.debug.versionNameSuffix 以根据时间戳为每个构建命名,所以我们得到了这个

versionNameSuffix "-DEBUG-" + getDate()

enter image description here

方案二

由于我们的 Github Action CI 不需要命名调试 apk 文件的名称,为什么不直接更改该文件名呢?

所以gradle的变化就变成了

defaultConfig {
    archivesBaseName = "${applicationId}-v${versionName}(${versionCode})" + getDate()
}

我们得到了这个输出

enter image description here

希望对你有帮助

关于通过 gradle 更新相同的 APK 而不是创建新的 APK 的 Firebase 应用分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67682054/

相关文章:

firebase - 如何通过与 Flutter Cloud Firestore 插件中的日期进行比较来获取记录?

ios - 测试人员无法从 Firebase App Distribution 下载应用程序

android - Firebase App Distribution - Google Play 窗口上没有 "install"按钮

firebase - 从 firebase 数据库 flutter 读取项目列表

firebase - 从 firebase 中的数组中删除特定的 map /对象

firebase - Flutter FirebaseException(核心/未初始化异常

android - 如何为 Firebase 创建通知主题并使用它?

ios - Firebase iOS 分发法拉第服务器错误 403

android - firebaseAppDistribution - 方法 : build. android() 的无签名适用于参数类型:(build_run_closure1) 值:[build_run_closure1@x

android - 如何使用 Kotlin DSL 让 Firebase 应用程序分发适用于不同的风格?