gpt4 book ai didi

android - 在我的手机上同时保留应用程序的发布版和测试版

转载 作者:行者123 更新时间:2023-11-29 20:11:46 25 4
gpt4 key购买 nike

我最近将我的 apk 上传到 Playstore 以供我的 Beta 测试人员使用,我想将此应用保留在我的手机上。

但如果我从 android studio 构建它以进行进一步测试,它会说:

Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

我认为这完全是关于一个处于 Debug模式而另一个处于 Release模式。

我想在调试时更改 applicationId,但我没有找到正确的方法,而且它阻止了我使用内容提供程序。

有更好的方法吗?

最佳答案

Gradle 将允许您为不同的 buildTypes 配置更改包名称。为此,请在构建类型中设置 applicationIdSuffix 属性:

    debug {
// append ".debug" to the application ID for this build
applicationIdSuffix ".debug"

debuggable true

// here go the usual debug build properties
minifyEnabled false
}
release {
// no applicationIdSuffix for the release build

// here go the usual release build properties
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.pro'
}

因此,如果您的发布应用程序 ID 是“mobi.glowworm.demo”,那么您的 gradle 文件现在将使用应用程序 ID“mobi.glowworm.demo.debug”创建调试版本。

这样您就可以同时将两者保存在您的手机上。


我还建议在两个版本之间更改应用程序名称,并考虑不同的启动图标。这使您(和任何其他测试人员)可以轻松区分构建。

这两项更改都依赖于为构建创建不同的源文件夹,遵循您已有的 app\src\main\... 文件夹的结构。创建 app\src\debug\resapp\src\release\res 文件夹。

在那里,您可以轻松地为每个构建添加不同的资源(以及不同的源文件,但这更难处理)。将这些命名为与主要资源相同的名称,gradle 将用这些新资源覆盖默认资源。

为了清楚起见,我调用我的构建类型字符串文件 build_type_settings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--Override certain application strings to identify build-->
<string name="app_name"
translatable="false">My Debug App</string>
<string name="api_key_google"
templateMergeStrategy="preserve"
translatable="false">DEBUG_GOOGLE_KEY</string>
</resources>

存储在:

  • 例如\app\src\debug\res\values\build_type_settings.xml

同样,您可以创建单独的 ic_launcher.png 文件并将它们存储在 mipmap 资源文件夹中:

  • 例如\app\src\debg\res\mipmap-hdpi\ic_launcher.png

最后,在某些时候,您可能需要更新 list 中的应用程序 ID。可能是为了 Parse 实现,或者其他一些原因。

诀窍是用 ${applicationId} 属性替换 list 中应用程序 ID 的所有实例。 Gradle 会在需要时自动插入正确的 ID。

有关这方面的完整详细信息,这是我发现自己一次又一次回来的帖子:

关于android - 在我的手机上同时保留应用程序的发布版和测试版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com