如何在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会将它们视为两个独立的应用,所以需要做以下配置:
- 登录Firebase控制台,在同一个项目下分别添加对应
myname.appname.free和myname.appname.paid包名的应用 - 分别下载两个应用的
google-services.json文件,将它们放到对应的风味目录下:- 免费版的
google-services.json放在src/free/目录下 - 付费版的
google-services.json放在src/paid/目录下
- 免费版的
- 确保模块级
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
相关产品推荐
相关产品推荐

