【问题标题】:How do I create different flavours while using Google Services in Android Studio?在 Android Studio 中使用 Google 服务时如何创建不同的风格?
【发布时间】:2018-04-21 14:50:03
【问题描述】:

我有一个使用 Google 服务的应用(我正在连接到 Firebase)。我现在想为它设置两种不同的口味 - 免费和付费。

我在 build.gradle 中做了以下工作:

productFlavors {
    free {
        applicationId "myname.appname.free"
        versionName "1.0-free"
        buildConfigField "boolean", "PAID_VERSION", "false"
    }

    paid {
        applicationId "myname.appname.paid"
        versionName "1.0-paid"
        buildConfigField "boolean", "PAID_VERSION", "true"
    }
}

根据我的阅读,同步它应该会导致 Android Studio 执行一些设置代码以“拥有”两种风格的操作,对吗?问题是,它不会同步 - 我收到错误:

Error:Execution failed for task ':app:processFreeReleaseGoogleServices'.
> No matching client found for package name 'myname.appname.free'

我读过的所有内容似乎都表明我可以通过将 google-services.json 添加到“免费”和“付费”文件夹中来解决这个问题,但这些文件夹不存在 - 也许 Android Studio 会设置它们,如果同步完成了吗?

另外,在 Firebase 控制台中,我目前有一个应用程序:myname.appname - 我是否需要在其中创建两个应用程序,分别称为 myname.appname.free 和 myname.appname.paid?并为每个下载不同的 google-services.json?

【问题讨论】:

    标签: android firebase android-studio-3.0 google-play-services


    【解决方案1】:

    您应该关注documentation for the Google Play services plugin

    请特别参阅Adding the JSON File 部分。您必须创建自己的风味特定目录:

    google-services.json文件一般放在app/ 目录(位于 Android Studio 应用模块的根目录)。作为 版本 2.2.0 插件支持构建类型和产品风格 特定的 JSON 文件。以下所有目录结构都是 有效:

    // dogfood and release are build types.
    app/
        google-services.json
        src/dogfood/google-services.json
        src/release/google-services.json
        ...
    

    注意:在发布目录中提供 google-services.json 文件 允许您为生产维护一个单独的 Firebase 项目 APK。

    当使用产品风味时,这些更复杂的目录 结构也是有效的。

    // free and paid are product flavors.
    app/
        google-services.json
        src/dogfood/paid/google-services.json
        src/release/free/google-services.json
    

    【讨论】:

    • 谢谢!我没有找到那个部分。
    猜你喜欢
    • 1970-01-01
    • 2015-09-10
    • 2015-07-21
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多