在升级我的 Android 应用程序期间,我更改了包名称。但Android Market不允许上传更改包名的应用程序作为升级。如果我将应用程序作为新应用程序上传,用户的设备上是否会有两个应用程序?如何确保用户不必从头开始重新下载应用程序,而无需恢复包名称的更改?

有帮助吗?

解决方案

两个包装=两个不同的在市场上应用。 一旦你上传一个应用程序,它的包应该是一样的。此外,键应该是相同的。

其他提示

Android的市场只关心包的名称在您的清单,而不是实际的包名称的来源。

您可以尝试在清单属性给老包的名称,然后活动赋予新的包名称,而不是相对的(即.MainActivity)

像这样:

<manifest package="your.old.package" ...>
   ...
   <application android:name="your.new.package.MainActivity" ...>

能工作..

我打算为我的应用程序的两个版本(付费/免费),这种方式并使用相同的项目和代码。

如果您更改包名称,它会被视为一个单独的应用程序 - 不仅在市场上,而且 apk 一般只会“替换”相同的包名称(并且仅当它们都使用相同的密钥签名时)。

尽管可以通过签署中间包来逐步过渡到新密钥 用两把钥匙, ,目前没有简单的方法来逐步改变包名称。

最好的办法是这样:

  • 新的 apk 版本使用相同的密钥进行签名,但包名称不同。
  • 安装后,新的 apk 会安排使用 shared_prefs 与旧的包名称。
  • 数据将复制到新的包名称。
  • 新版本请求删除旧版本,用户会看到卸载对话框。

注意应用程序数据通常保存在这里:

/data/data/pac.kage.name/

我还没有尝试过,所以我还不能提供更多细节。您可能还对我的感兴趣 请求以无缝方式转换包名称.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top