Android和Firebase:不同测试周期的不同环境

Android和Firebase:不同测试周期的不同环境,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我目前正在开发我的第一个Android应用程序,它是我已经开发的一个iOS应用程序的Android/Kotlin版本。我创建了3个不同的Firebase项目,为每个环境提供独立的实时数据库实例: com.myapp.debug仅由我用于开发 应使用com.myapp.beta进行alpha和beta测试 com.myapp应仅适用于将在Play Store上公开发布的生产应用程序 当我打算在Android应用程序中插入这3个环境时,我读到我应该使用产品风格,所以下面是我如何配置构建的: an

我目前正在开发我的第一个Android应用程序,它是我已经开发的一个iOS应用程序的Android/Kotlin版本。我创建了3个不同的Firebase项目,为每个环境提供独立的实时数据库实例:

  • com.myapp.debug仅由我用于开发
  • 应使用com.myapp.beta进行alpha和beta测试
  • com.myapp应仅适用于将在Play Store上公开发布的生产应用程序
当我打算在Android应用程序中插入这3个环境时,我读到我应该使用产品风格,所以下面是我如何配置构建的:

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.derbigum.approofreferences"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    flavorDimensions "dev", "qa", "prod"
    productFlavors {
        dev {
            dimension "dev"
            applicationId "com.derbigum.approofreferences.debug"
        }
        qa {
            dimension "qa"
            applicationId "com.derbigum.approofreferences.beta"
        }
        prod {
            dimension "prod"
            applicationId "com.derbigum.approofreferences"
        }
    }
}
当然,我在src中创建了相应的子文件夹来存储我为每个项目获得的各种版本的google-services.json

我用它完成了所有的开发工作,到目前为止一切正常:开发数据是在正确的数据库中创建的

但现在我想做第一个封闭的alpha版本,但我不知道我应该如何生成我的APK。我只有两个构建变体:

  • devQaProdDebug
  • devQaProdRelease

也许我在配置维度时出错了?也许是别的原因。有人能帮我弄清楚我的设置是否正常,如果可以,我应该如何构建我的应用程序的封闭alpha版本,并将其发布给我的内部用户进行测试?

我想你想要的不是三种环境的三维,而是环境的一维,有三种风格:

flavorDimensions "env"
productFlavors {
    dev {
        dimension "env"
        applicationId "com.derbigum.approofreferences.debug"
    }
    qa {
        dimension "env"
        applicationId "com.derbigum.approofreferences.beta"
    }
    prod {
        dimension "env"
        applicationId "com.derbigum.approofreferences"
    }
}

这将为每个环境生成变体。

非常感谢,这就是问题所在。遗憾的是,文档在示例中非常便宜,说明了如何使用这个味道维度,尽管它现在是强制性的。