我有一个应用程序上传到Google play-store,我已经更新了好几次,没有问题。当我使用Eclipse从现有代码创建更新时,每次我在手机上尝试我的应用程序时,它都会删除前一个并安装新的。当我将它上传到play-store时,所有安装了该应用程序的人都会这样做。到目前为止,一切都很好。
现在问题来了:
我最近安装了Android Studio来创建我的应用程序的更新,但这次我想从头开始重写所有代码。而且我意识到,每次我在创建应用程序时尝试应用程序,它都会正确安装,但它不会删除我已经从play-store下载的已安装应用程序。它不会替换以前的应用程序,而是保留安装的两个应用程序。
我怎样才能让我的应用程序从头开始重建并稍作修改替换旧应用程序?
是的,这完全符合 Google Play 应用更新流程。
Google-play 根据两个标准确定请求是更新:
1 - 应用程序的包名称。
2 - 您的版本代码
要被视为更新,您的新应用程序的名称必须与旧包(“com.example.myapp”)完全相同,并且
android:versionCode
在其 AndroidManifest.xml 文件中其名称必须更大。当然,APK 必须使用您帐户的私钥签名,就像在您的帐户下发布的任何应用程序一样。问题是您使用另一个唯一标识符定义了您的应用程序,简而言之,使用了不同的包名称。
必须使用相同的应用程序包创建应用程序更新并使用相同的密钥库进行签名。
Android Studio 中的应用程序包
build.gradle
除了可以在文件中定义之外AndroidManifest.xml
,重要的是要知道build.gradle
覆盖中定义的配置AndroidManifest.xml
。要更改您的包名称设置,您不需要进入
module settings
,只需在 yourAndroidManifest.xml
或 yourbuild.gradle
中进行,显然目录将被重命名,您必须通过重构或手动更改来完成。配置示例
build.gradle
:配置示例
AndroidManifest.xml
(您也可以使用 .json 文件):它
versionCode
不会影响不同应用程序的安装,您只需要注意每个新版本都有一个连续的整数值。不幸的是,由于包是唯一的,因此无法安装应用程序的更新,您只能更新具有相同包的应用程序,实际上应用程序的安装 url 由包定义为 id:
https://play.google.com/store/apps/details?id=com.mydomain.myapplication