更改升级后的Android应用程序的包名称
-
26-09-2019 - |
题
在升级我的 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/
我还没有尝试过,所以我还不能提供更多细节。您可能还对我的感兴趣 请求以无缝方式转换包名称.
不隶属于 StackOverflow