You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中为集成Google Services的应用配置不同产品风味?

配置Free/Paid产品风味后Android Studio的变化及Firebase适配指南

看起来你已经把产品风味的基础配置搞定了,这步做得很规范!同步这个配置之后,Android Studio会给你带来这些直观的变化,同时针对Firebase集成还有几个关键要点需要注意:

同步后Android Studio的预期变化

  • 右下角的Build Variants面板会新增4个构建变体:freeDebug、freeRelease、paidDebug、paidRelease,你可以随时切换不同变体来编译、运行对应版本的应用
  • 自动生成的BuildConfig类中会包含你定义的PAID_VERSION布尔常量,在代码里可以直接通过BuildConfig.PAID_VERSION判断当前版本类型,用来控制功能开关、资源显示等逻辑
  • 你可以为每个风味创建独立的资源目录:src/free/res和src/paid/res,在这些目录下放置对应版本的专属资源(比如不同的应用名称、启动图标、文案),编译时AS会自动合并主资源目录和当前风味的资源

Firebase(Google Services)适配关键步骤

由于你为两个风味设置了不同的applicationId,Firebase会将它们视为两个独立的应用,所以需要做以下配置:

  1. 登录Firebase控制台,在同一个项目下分别添加对应myname.appname.free和myname.appname.paid包名的应用
  2. 分别下载两个应用的google-services.json文件,将它们放到对应的风味目录下:
    • 免费版的google-services.json放在src/free/目录下
    • 付费版的google-services.json放在src/paid/目录下
  3. 确保模块级build.gradle中已经应用了Google Services插件:
    // AGP 7.0以下版本
    apply plugin: 'com.google.gms.google-services'
    
    // AGP 7.0+版本(推荐)
    plugins {
        id 'com.android.application'
        id 'com.google.gms.google-services'
    }
    

代码中区分版本的示例

你可以在业务逻辑里通过BuildConfig.PAID_VERSION快速区分版本,比如:

if (BuildConfig.PAID_VERSION) {
    // 付费版逻辑:解锁高级功能、隐藏广告
    premiumFeatureLayout.setVisibility(View.VISIBLE);
    adContainer.setVisibility(View.GONE);
} else {
    // 免费版逻辑:显示广告、隐藏高级功能入口
    premiumFeatureLayout.setVisibility(View.GONE);
    adContainer.setVisibility(View.VISIBLE);
}

内容的提问来源于stack exchange,提问作者Sharon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:35