同时上传具有相同代码库但签名不同的两个版本的 apk

Posted

技术标签:

【中文标题】同时上传具有相同代码库但签名不同的两个版本的 apk【英文标题】:Uploading two versions of apk simultaneously having same code base but different signature 【发布时间】:2016-03-24 18:02:51 【问题描述】:

如何让同一个应用拥有两个签名不同的 Apk 版本,这样两者都可以独立上传到 Play 商店,具有不同的功能。

例如,一个 Apk 是具有半功能的免费版本,另一个是具有完整功能的付费版本。

【问题讨论】:

【参考方案1】:

你必须使用口味。更多信息: http://developer.android.com/intl/es/tools/building/configuring-gradle.html

在此示例中,您有 2 种口味:

productFlavors 
    pro 
        applicationId = "com.example.my.pkg.pro"
    
    free 
        applicationId = "com.example.my.pkg.free"
    

因此,如果您进入 Android Studio 的“Build Variants”面板,您可以选择编译哪个版本。 好处是只需一键就可以编译出你想要的版本。如果没有,您必须分别维护 2 个应用程序。

【讨论】:

【参考方案2】:

使用applicationIdSuffix

一种更简单的方法是将applicationIdSuffix 添加到非默认构建类型。这有助于调试,但不应用于 Play 商店上传或 debug buildType。

buildTypes 
    myVariant 
        debuggable true
        applicationIdSuffix ".debug"
    
    ...

这最终会使调试版本成为com.my.package.debug,因此可以同时安装两者。

【讨论】:

以上是关于同时上传具有相同代码库但签名不同的两个版本的 apk的主要内容,如果未能解决你的问题,请参考以下文章

C++ 两个库依赖于相同的库但不同的版本?

上传具有不同版本代码但版本名称相同的 Android 应用程序

在 alpha 测试中删除 apk 以上传具有相同版本代码的不同 apk

Android安装失败 - 相同的包但签名不同

不同类型在 CIL 中具有相同的签名

如何设置具有相同捆绑版本的两个目标的 XCode 项目