flutter firebase_admob集成-如何与应用程序口味一起使用

时间:2019-04-03 06:23:10

标签: firebase flutter admob android-productflavors

我设置了flutter应用程序,以针对不同版本使用口味,例如开发,生产等。此过程的必要部分位于 app / build.gradle 文件中,如下所示:

    flavorDimensions "flutter-flavours"

    productFlavors {
        development {
            dimension "flutter-flavours"
            applicationIdSuffix ".dev"
        }
        staging {
            dimension "flutter-flavours"
            applicationIdSuffix ".stg"
        }
        production {
            dimension "flutter-flavours"
        }

结果,当我建立 development 发行版时,我是通过 appId -com.example.myapp.dev来实现的,而我的生产版本< / strong>版本为com.example.myapp。到目前为止一切顺利。

现在,我决定向应用程序添加一个firebase_admob插件。为此,我将Firebase应用程序放入Firebase帐户,并下载了身份验证所需的相应google-services.json文件。然后,我必须将此文件放入应用程序的android / app文件夹中。

这是我发现令人讨厌的地方-基本上,我可以为每种应用程序样式创建json文件,即我可以为生产使用一个json,为开发使用一个json,但是我不知道如何将它们都放入文件夹中,然后gradle将根据发行版本确定要取哪一个。

任何想法,提示将不胜感激!

1 个答案:

答案 0 :(得分:0)

我使用带有口味的 google_mobile_ads 插件。以下是我为不同口味设置的方法:

在我的 android/app/build.gradle 中,我只需添加名为 ads_id 的 resValue

    productFlavors{
    ss {
        dimension "flavor-type"
        applicationId "com.company.ss"
        resValue "string", "app_name", "ss"
        resValue "string", "ads_id", "ca-app-pub-xxx~yy"
        versionNameSuffix "-ss"
        signingConfig signingConfigs.ss
    }
    rk {
        dimension "flavor-type"
        applicationId "com.company.rk"
        resValue "string", "app_name", "rk"
        resValue "string", "ads_id", "ca-app-pub-xxx~yy"
        versionNameSuffix "-rk"
        signingConfig signingConfigs.rk
    }
    ns {
        dimension "flavor-type"
        applicationId "com.company.ns"
        resValue "string", "app_name", "ns"
        resValue "string", "ads_id", "ca-app-pub-xxxx~yyy"
        versionNameSuffix "-ns"
        signingConfig signingConfigs.ns
    }
}

然后在 AndroidManifest.xml 中获取这个值

 <application
    android:name="io.flutter.app.FlutterApplication"
    android:label="@string/app_name"
    android:usesCleartextTraffic="true"
    android:icon="@mipmap/launcher_icon">
    <meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="@string/ads_id"/>
    <activity
..