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

如何基于单一代码库构建适配Google Play与亚马逊应用商店的版本?

多应用商店发布的无分支代码管理方案

不需要维护两个代码分支,用Gradle的**Product Flavors(产品风味)**来管理不同平台的变体是最成熟的方案——Build Types主要用于区分Debug/Release这类构建环境,而Product Flavors才是专门用来定义不同版本/渠道变体的工具,完全适配你的需求。

具体实现步骤如下:

1. 配置Gradle的Product Flavors

在app模块的build.gradle(或build.gradle.kts)中定义对应平台的风味,同时给特定风味添加专属依赖:

android {
    flavorDimensions "platform"
    productFlavors {
        googlePlay {
            dimension "platform"
            // 可定义Google Play版本的专属配置,比如应用ID后缀
            applicationIdSuffix ".google"
        }
        amazon {
            dimension "platform"
            applicationIdSuffix ".amazon"
        }
    }
}

dependencies {
    // 通用依赖放在此处
    implementation "androidx.core:core-ktx:1.12.0"

    // 仅Google Play版本依赖Billing库
    googlePlayImplementation "com.android.billingclient:billing:6.1.0"
}

2. 隔离平台专属代码

通过源集(Source Sets)实现代码的条件编译,无需分支:

  • 在项目目录下创建src/googlePlay/java/目录,存放Google Billing相关代码(比如支付逻辑实现、BillingClient初始化等)
  • 创建src/amazon/java/目录,存放亚马逊版本的专属逻辑(比如免费/完整版的权限判断、解锁逻辑等)
  • 主源码目录src/main/java/仅存放通用业务逻辑,避免直接依赖任何平台专属类

如果需要更优雅的解耦,可以定义通用接口,比如:

// src/main/java/com/yourapp/PaymentManager.java
public interface PaymentManager {
    boolean isFullVersion();
    void unlockFullVersion();
}

然后在googlePlay风味下实现Google Billing版本的逻辑,在amazon风味下实现完整版判断逻辑,主代码仅依赖这个接口即可。

3. 差异化资源与清单配置

不同风味可拥有独立的资源和清单文件:

  • 比如src/googlePlay/AndroidManifest.xml中添加Google Billing所需权限:
<uses-permission android:name="com.android.vending.BILLING" />
  • src/amazon/AndroidManifest.xml无需该权限,还可修改应用名称、图标等资源,比如在src/amazon/res/values/strings.xml中定义专属应用名。

4. 构建与打包

直接通过Gradle命令构建对应版本:

  • 构建Google Play正式版:./gradlew assembleGooglePlayRelease
  • 构建亚马逊正式版:./gradlew assembleAmazonRelease
    构建完成后,对应APK/AAB会生成在app/build/outputs/apk/或app/build/outputs/bundle/目录下。

这种方案完全不需要维护多个代码分支,所有平台变体的差异化逻辑都通过Gradle风味和源集隔离,通用代码只需维护一份。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:01:18