Android:我在一个已经发布的应用程序上更改了sharedUserId,我的一些用户可以';t更新。我现在该怎么办?

Android:我在一个已经发布的应用程序上更改了sharedUserId,我的一些用户可以';t更新。我现在该怎么办?,android,Android,My被用来制作Android网络浏览器应用程序,为中文文本添加发音辅助。根据您想要哪个地区的发音(例如普通话拼音、广东话刘锡尼、温州……),我们提供了不同类型的发音辅助功能,为了节省旧Android手机的存储空间,我们将每个辅助功能作为一个单独的应用程序发布,因为大多数用户不需要超过一个。但在2018年3月初,我根据流行的请求添加了书签功能,并愚蠢地在我的AndroidManifest.xml中添加了android:sharedUserId属性,我尝试了以下解决方法: 在周一发布一个带有shar

My被用来制作Android网络浏览器应用程序,为中文文本添加发音辅助。根据您想要哪个地区的发音(例如普通话拼音、广东话刘锡尼、温州……),我们提供了不同类型的发音辅助功能,为了节省旧Android手机的存储空间,我们将每个辅助功能作为一个单独的应用程序发布,因为大多数用户不需要超过一个。但在2018年3月初,我根据流行的请求添加了书签功能,并愚蠢地在我的
AndroidManifest.xml
中添加了
android:sharedUserId
属性,我尝试了以下解决方法:

  • 在周一发布一个带有
    sharedUserId
    的版本,带有额外的启动代码来检查日期,(a)如果是在发布后7天内,它说下周的更新可能会有问题,但不要担心,等待下周的更新,(b)如果是在发布后14天内,它说本周的更新可能会有问题,但不要担心,等待下周的更新

  • 接下来的星期一,发布一个没有sharedUserId的版本,设置为工作几周,然后完全停止工作,告诉用户必须卸载并重新安装应用程序

  • 之后的星期一,发布一个带有
    sharedUserId
    的版本,该版本恢复正常

  • 我的计划是,这将导致(a)设备不关心
    sharedUserId
    的用户将在所有3个版本中自动升级,并且除了版本1的消息(在他们的情况下是虚假的),(b)设备卡在
    sharedUserId
    之前版本上的用户将获得版本2,并且随后将被告知在版本3最新时卸载并重新安装,(c)设备卡在post-
    sharedUserId
    上的用户将获得版本1和3,并且在版本2的一周内只会注意到一条“更新失败”消息,版本1警告了他们

    根据Play Store的统计数据,实际发生的情况是:

    • 到第1周结束时,超过55%的活跃用户被我在设置
      sharedUserId
      之前发布的最后一个版本卡住了,另外还有20%的用户被早期版本卡住了(因此超过75%的用户被“甩在后面”)。大约15%的活跃用户下载了警告第2周更新可能失败的版本
    • 第二周快结束时,“我的
      sharedUserId
      Mass-up之前的最后一个版本”上的用户数从55%下降到了16%。大约45%的我的活跃用户已经升级到第2周的非sharedUserId版本(如果第3周的版本无法自动替换,则会告诉他们重新安装),另外12%的用户仍然在第1周的版本上,并被告知不要担心。我有大约19%的人坚持使用早期版本(从20%下降)。我开始怀疑19%的人大部分都禁用了他们的更新
    • 在第三周的中途,即第二周的版本开始告诉用户重新安装的第1天,我对第二周的版本有44%的支持(并且被告知他们必须重新安装才能更新,所以至少现在他们知道了),第三周有16%的支持“混乱前的最后一个版本”,还有13%的支持旧版本
    所以这不是一个完美的答案,但在我的例子中,它至少帮助我通知了超过四分之三的受影响用户,他们现在需要重新安装,这比没有人知道要好

    04-04 21:54:58.653: W/PackageManager(2127): Package org.ucam.ssb22.pinyinwol shared user changed from <nothing> to org.ucam.ssb22.annogen; replacing with new
    04-04 21:54:58.708: I/BootTime(2127): Fail Safe scanning for:/mnt/asec/org.ucam.ssb22.pinyinwol-1/pkg.apk
    04-04 21:54:58.708: W/PackageManager(2127): Package couldn't be installed in /mnt/asec/org.ucam.ssb22.pinyinwol-2/pkg.apk