【问题标题】:Android APK file: Re-activate older APK file in Google Play StoreAndroid APK 文件:在 Google Play 商店中重新激活旧的 APK 文件
【发布时间】:2012-04-30 11:57:14
【问题描述】:

我已将两个 APK 文件上传到 Google Play 商店。一个是新版本,一个是旧版本。较新的版本是活动版本,因为它具有更高的 versionName 和 Code。现在我在新版本中发现了一些错误,我想将其从 Play 商店中删除并激活旧版本。 Google Play 不会让我停用较新的并再次激活较旧的,因为它的版本名称和代码较低。 问题是我不是开发人员,也没有构建应用程序。开发商在另一个国家,很难找到他们。

如何重新激活旧版本?我知道一种解决方案是更改 versionName 和 Code。我只有 apk 文件,我可以只用 apk 文件在 Eclipse 中更改这些细节,并且在 Eclipse 或开发 Android 应用程序方面的经验很少吗?

谢谢

【问题讨论】:

  • @Booger 如果无法重新激活以前的版本,那么为什么 google 将所有旧版本保留在 google play 中?这里有什么意义?为什么 google 想用不可用的 apk 加载它的服务器?
  • @vnshetty 保留多个 APK 的一个可能原因是为仍有较低版本代码的 APK 的用户支持应用内计费。要使应用内结算起作用,Google Play 上必须有一个 APK 与在用户设备上运行的 APK 具有相同的签名和版本代码。因此,可能仍需要停用的 APK 来支持尚未更新到最新 APK 的用户。
  • 我不确定上述是否正确,但我读过一些帖子表明可能是这种情况,至少对于 IAB 版本 2 而言。请参阅:stackoverflow.com/questions/11867878/…

标签: android apk


【解决方案1】:

您无法从 apk 本身重建新版本的 apk。
让应用开发者执行以下操作:

  1. 更高版本号重建项目(必须高于所有之前提交的版本)
  2. 重新提交

来自谷歌的Android "Developer Console" page

请注意,由于应用版本控制,不支持回滚 Android平台的要求。 如果需要回滚, 考虑使用新版本号启动以前的 APK。然而, 这种做法只能作为最后的手段,因为用户将失去 访问新功能并且您的旧应用程序可能无法向前兼容 随着您的服务器更改或数据格式,所以一定要运行 alpha 和 对您的更新进行 Beta 测试。

【讨论】:

  • 您将需要处于之前状态的代码。这是在一个环境中备份的,其中包含所有当前的类,然后是当前的库和当前的 Android/Java 版本。所有这些都很少可用。
【解决方案2】:

一个好的策略是,在创建构建时,修改清单以构建版本 2.0 = 39 和再次 2.05 = 45 并生成这两个 apk,这显然会做同样的事情。

稍后,当 build 2.01 = 40 在生产中并且您发现错误时,您可以通过上传您之前创建的 2.05 = 45 来跳转回旧版本。

在释放 40、41、42、43 和 44 以返回之前的功能时,您有 5 次回溯的机会!

为每个构建执行此操作,您始终可以返回到已预编译和构建但版本号高于当前生产的早期版本。

【讨论】:

  • @JoRouss 这就是你未来如何计划的方式。
  • 哈。很好,除非您的中间错误 APK 更改了存储在设备上的某些数据的格式,因此“新”(旧)版本无法再识别它
  • 如果本地 SQLite 数据库 STRUCTURE 发生了变化,可能会出现问题。取决于您是否设计了避免这种情况的方法,例如: // 升级数据库 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
【解决方案3】:

如果没有签名证书,您将无法更改 APK 文件。

假设您没有更改 API 支持级别,您应该能够恢复到旧版本。

【讨论】:

  • 感谢您的回答。我该如何恢复?当我停用新版本并重新激活旧版本时,它给我一条错误消息:“错误:新的 APK 版本低于以前的 APK 版本。”两个 APK 文件具有相同的属性: API 级别:7-16+ 支持的屏幕:small-xlarge OpenGL 纹理:all
  • 我只在控制台中看到过这个,实际上我确实更改了 API 级别。如果控制台认为这些不同,您可能会遇到麻烦,并且可能应该考虑继续前进(您可以从以前的来源生成新的 APK 吗?)
  • 就是这样,我对APK开发一无所知,即使我设法创建了一个新应用程序,该应用程序是免费的,但它所使用的服务是付费服务,我不能搞砸(APK文件是一个voip软客户端)。而且我想如果没有开发人员提供的安全证书,我将无法更改当前 APK 文件的 versionName 或 Code,而我很可能不会得到...还有其他建议吗?
  • 如果您没有证书,您将无能为力(请将我的原始答案标记为正确)。这是 Android 的核心安全模型,没有证书就无法更新(如果证书丢失,即使 Sergey Brin 也无法上传应用程序)。如果 API 版本发生更改,您也无法恢复(因此您可以在我的答案中将 2 个句子标记为正确;-))。最重要的是,我认为您无能为力 - 抱歉。
【解决方案4】:

大概,去开发控制台,选择 APK 标签,点击“高级模式”选项,停用当前版本,然后点击“重新激活”以获得所需的版本。

【讨论】:

  • 这表示捆绑级别 (3) 低于当前版本 (5) 并且失败
  • 这个答案已经过时了。
猜你喜欢
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 2016-04-18
  • 2014-08-11
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 2019-05-07
相关资源
最近更新 更多