google play store - 如何推广具有不同包名的测试应用程序?

Posted

技术标签:

【中文标题】google play store - 如何推广具有不同包名的测试应用程序?【英文标题】:google play store - how to promote test app with different package name? 【发布时间】:2018-01-08 01:57:10 【问题描述】:

这是一个关于android中包名的问题。我目前在 gradle 中有两种构建风格。制作和分期。

我创建了一个 google play 商店帐户,我希望用户对我的应用进行 alpha 和 beta 测试。暂存应用程序当前的包名称为: com.mobile.myapp.staging 而生产版本的包名称为 com.mobile.myapp。

所以我们有

com.mobile.myapp.staging vs com.mobile.myapp

最后,我显然想将 com.mobile.myapp 推广到生产而不是登台。但我希望用户长时间使用 staging 变体进行测试(因为它连接到 staging apis 等)

我该怎么做?我必须在 google play store 中创建两个不同的应用程序吗?我想知道我是否必须这样做 他们都有不同的包名。它们都将使用相同的密钥库进行签名。请帮忙。

我的 gradle 文件如下所示:

apply plugin: 'com.android.application'

android 
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig 
minSdkVersion project.ext.minimumSdkVersion
//check top level build.gradle  file for attributes -
targetSdkVersion 25
applicationId "com.mobile.myapp"
versionCode 150010203
versionName 1.2.3 
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

//renderscriptTargetApi 25
//renderscriptSupportModeEnabled true
multiDexEnabled true

buildTypes 
release 
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'



dexOptions 
javaMaxHeapSize "6g"
//for out of memory gc overhead error
lintOptions 
abortOnError false


productFlavors 

def STRING = "String"
def BOOLEAN = "boolean"
def TRUE = "true"
def FALSE = "false"
def FLAVOR = "FLAVOR"
def RETROFIT_LOG_ALL = "RETROFIT_LOG_ALL"
def BASE_ENDPOINT = "BASE_ENDPOINT"

staging 
    // applicationId "com.mobile.myapp.staging"
    buildConfigField STRING, BASE_ENDPOINT, '"https://api.flyingSaucerxx-staging.com"'
    buildConfigField BOOLEAN, RETROFIT_LOG_ALL, TRUE
    manifestPlaceholders = [appDrawerName: "FlyingSaucer-Staging"]
    applicationIdSuffix '.staging'
    versionNameSuffix '-STAGING'


prod 
    buildConfigField STRING, BASE_ENDPOINT, '"https://api.flyingSaucerxx.com"'
    buildConfigField BOOLEAN, RETROFIT_LOG_ALL, FALSE
    manifestPlaceholders = [appDrawerName: "FlyingSaucer"]




///.. dependencies below

【问题讨论】:

***.com/questions/18491649/… 您可以使用 com.mobile.myapp 进行 alpha 和 beta 测试,方法是将 apk 上传到开发者控制台的 Alpha 和 Beta 测试部分。您无需为同一个应用创建两个变体。你只是让事情变得复杂。 该应用程序正在处理安全信息等。企业希望它首先由暂存区域的用户进行测试。如果他们对此感觉良好,那么我们将在生产区域进行测试。我不明白你的意思是我不需要测试两个变体? 为什么不使用相同的包名称和不同的端点进行暂存和生产? 使用 applicationIdSuffix '.staging' 允许我在设备上拥有两个不同的应用程序,这就是我使用它的原因。让我检查一下,一秒钟 【参考方案1】:

在 Google Play 商店中,同一个应用不能使用不同的包名。

因此,您唯一的选择是将暂存应用程序的包名称更改为生产应用程序。并将其提交给 alpha/beta 测试人员。请务必注意不要将其推广到生产环境中。

另一种选择是使用其他交付渠道,例如 hockeyapp 或 crashlitics beta。

【讨论】:

没有冒犯,但我认为如果您使用构建风格,可以发布具有相似包名称的相同应用程序。虽然,我没试过。 @EndreBörcsök Eugen 说“不同的”包名是不可能的。

以上是关于google play store - 如何推广具有不同包名的测试应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Play 应用中推广应用 [关闭]

如何从 google play store 获取应用市场版本信息?

如何从 google play store 反编译一个 android 应用程序

如何使用 AndroidPublisher api 在 google play store 中检索任何 google 应用程序的评论?

如何解决 Google GMS 在被锁定失效后,无法再使用 Google Play Store的问题;亦适用于在不使用 Google GMS 的情况下,如何正常使用Google Play 商店

如何解决 Google GMS 在被锁定失效后,无法再使用 Google Play Store的问题;亦适用于在不使用 Google GMS 的情况下,如何正常使用Google Play 商店