在Beta和发行版之间快速切换

时间:2018-10-09 01:24:32

标签: android android-studio gradle google-play version

我正在以下情况下开发android应用程序:

  • 测试人员(不是开发人员,不一定适合计算机,但我确实知道他们的Play商店电子邮件),以便能够在同一应用的Beta版和稳定版之间快速切换
  • 通过Play商店提供稳定版和Beta版的更新
  • 限制访问测试版。该发行版本已经在Play商店中公开提供。

到目前为止,我主要致力于在Android设备上获取基本上相同应用的两个版本的方法。我已经考虑了一些选择,但是我想建议如何进行。我可以:

  • 创建一个“新”应用,并在其名称后附加beta,并使用不同的图标将其与测试人员区分开,但内部原理基本相同。它可以作为封闭的alpha /内部测试通过Play商店分发。我想避免这种情况,因为这会使我更加难以管理版本-当我要发布Beta版本时,必须手动更改应用程序的图标和名称
  • 营造一种风味。我不能完全确定构建风味的能力或支持程度。
  • 使用Google Play商店的封闭式Alpha /内部测试程序。这不是理想的,因为它花了大量的精力选择加入/退出测试程序。您必须转到一个URL,单击一个按钮,卸载该应用程序,然后重新安装该应用程序。
  • 使用app cloner之类的应用来克隆稳定版本并将其重命名,然后通过Play商店分发测试版。这是不理想的,因为它使更新发行版需要开发人员的干预。

注意:当我说封闭的alpha和内部测试时,我的意思是google播放封闭的alpha和内部测试(可通过google开发者控制台访问),而不是更笼统的定义。当我说Beta时,是指更笼统的定义-预发行版本。

编辑:按照this帖子中的建议,我成功安装了两个应用程序,但是每当尝试打开一个应用程序时,都会出现一个选择器对话框,例如information redacted to protect the identity of the app

2 个答案:

答案 0 :(得分:1)

Google Play已经为您提供了所有需要分发的产品以及与产品版本同时发布的alpha / beta /内部版本。

据我了解,您的问题是您希望测试人员在同一设备上同时拥有两个版本的应用程序。 您无法通过考虑的选项来完成此任务。即使更改名称和图标,唯一重要的是应用程序ID。如果您不更改应用程序ID,则无法安装两次。另一方面,如果更改程序包名称,则将其视为全新的应用程序,因此必须在Google Play中创建一个新的应用程序。

我建议使用完全支持的构建变体(风味)。 这样,您可以轻松更改软件包名称(以及应用程序名称,以使其更易于理解)。 当然,正如我之前提到的,您应该在Google Play中创建一个新应用或以其他方式分发它。

新版本的gradle应该与应用gradle相似:

buildTypes {
    release {
    ....
    }
    qa { //your new variant name
       applicationIdSuffix ".qa" //this will append a ".qa" to your app id
       versionNameSuffix "-qa" //this will append a "-qa" to your app name
       ...
    }
}

答案 1 :(得分:0)

要解决最后一点和屏幕截图,请在应用程序中从使用基于字符串的Intent切换为使用基于类的Intent。所谓基于字符串的意图,是指用public Intent (String action)构造的意图。例如

startActivity("com.myOrganization.NEXT_ACTIVITY");

(要使这些字符串起作用,需要在清单中使用标记声明它们)

将它们替换为带有函数签名public Intent (Context packageContext, Class<?> cls)的基于类的构造函数。像这样:

startActivity(currentActivity.this, nextActivity.class)

基于字符串的意图旨在用于外部服务,例如,打开Web浏览器以报告错误。在这种情况下,您不知道Web浏览器的Java类名称是什么(即,它可以是firefox.classchrome.class)。 使用您的应用程序,您知道要开始的所有活动的类名,因此只需使用它们即可。来自基于类的Intent构造函数的Android documentation

  

这提供了一种方便的方法来创建旨在执行硬编码类名的意图,而不是依赖系统为您找到合适的类

使用基于类的构造函数还具有使Android Studio中的重构更加容易的另一优点。

注意:您仍然可以在清单中包含意图过滤器,以允许其他应用在您的应用中执行某些操作