|      1Anarchy      2024-06-26 07:24:14 +08:00 看起来对于 AndroidN 以上是有相关升级机制的。 看官方文档吧: https://support.google.com/googleplay/android-developer/answer/9842756 | 
|      2hollc      2024-06-26 08:54:49 +08:00 先推一个小版本,出一个备份功能。然后引导用户下载新包名的 apk ,最后引导用户恢复备份。包名不一样,都无法识别为同一个程序,我猜想应该没有解决办法 | 
|      3ho121      2024-06-26 08:57:28 +08:00 via Android 换包名推出 2.0 版本,可以和 1.0 版本共存,以后只更新 2.0 版本 | 
|      4egan0606      2024-06-26 09:52:01 +08:00 据我所知:包名是不可以更改的; “包名”代表应用的唯一性; “签名”防止应用篡改; 市面上比较可行的就是 2 楼、3 楼的方案; 但是再想想,真的有必要换吗? 正常用户是看不到包名的; | 
|  |      5pengpeng1      2024-06-26 09:55:55 +08:00 可以让 Google 官方给你兼容下 | 
|      6yinmin      2024-06-26 10:22:17 +08:00 via iPhone 证书用 openssl 拆成 crt 文件和 key 文件,然后用 openssl 使用 key 文件重新生成 crt 文件,然后 openssl 合并 crt 和 key 。具体指令可以问 gpt | 
|  |      9coolmint      2024-06-26 10:28:22 +08:00 干脆就一直用老包名,tiktok 那包名都没换 | 
|      10eleba      2024-06-26 10:38:11 +08:00 换包名就是换一个 app 了 大佬 | 
|      11dode      2024-06-26 10:41:09 +08:00 发布两套,官网先变更,并且发布新功能吸引客户自行升级 | 
|  |      12keyboardCat      2024-06-26 11:13:01 +08:00 包名无所谓,用户看不到的。 | 
|  |      13shily      2024-06-26 11:43:23 +08:00 @keyboardCat 赞同  包名无所谓,用户看不到的。 | 
|      14drymonfidelia OP | 
|  |      15lakehylia      2024-06-26 12:05:08 +08:00 只能引导用户,设置一个过渡期,两套共存,过渡期完了之后干掉旧的。但是数据迁移很麻烦的。 | 
|      16distance7509      2024-06-26 12:07:49 +08:00 没必要换吧,换了包名又是另外一个应用了,会流失用户的 | 
|  |      17wbrobot      2024-06-26 12:19:57 +08:00 我的理解: 1 ,有内置升级功能,直接发布更新安装新的 apk 。 2 ,没有内置升级,更新一个小版本,增加内置升级功能,然后发布更新安装新的 apk 。 | 
|      18thepot      2024-06-26 13:16:24 +08:00 直接弹窗,跳转“pro 黄金版”的下载页面 | 
|  |      19weishu      2024-06-26 13:21:30 +08:00 Android 支持密钥轮替,不过只有 Android 9 以上的设备支持,参考: https://source.android.com/docs/security/features/apksigning/v3?hl=zh-cn | 
|  |      21lw10645      2024-06-26 14:36:00 +08:00 老包里面每次打开引导用户下载新包,并告知用户当前版本不再维护(可以编一些理由,比如政策原因啥),再给一个最终期限,然后其他所有位置都换成新包的下载入口,,这个东西需要过渡期的 | 
|      22Tomatopotato      2024-06-26 14:52:53 +08:00 | 
|      23Tomatopotato      2024-06-26 14:53:14 +08:00 发不了文字 看我上面的图片吧 | 
|  |      24rlds      2024-06-26 14:53:31 +08:00 换包名没法覆盖,建议旧版的内置更新里面引导用户更新版,其次新版的检测下是否安装了旧版引导用户卸载旧版。 | 
|      25XXWHCA      2024-06-26 18:00:18 +08:00 不可能的,app 名称好比人的名字,包名就是身份证号码,相当于这个 app 的唯一标识,如果包名可以随便修改,然后还能顶替原来的包名,就好比一个人换了身份证号,那不乱套了 | 
|  |      26magicls      2024-06-26 18:15:26 +08:00 楼上提到签名轮换的倒是好心,但是没审题,题主是要换包名,不是换签名。 我的建议是你们把新版本的 apk ,打到老版本去,出一个老版本的更新,这个更新安装之后,首次打开就把新版本装上,startActivity ,然后 finish 自己。新版本打开之后去引导用户把老版本卸载,从此只更新新版本。我们公司有个项目就是这么干的。 代价自然是用户的体验、操作成本,还有部分反感,不过这也是没有办法的办法,你们可以提前几个版本,邮件或者挂 banner 通知用户你们打算这么做。 有些人可能会问,既然都通知用户了,为啥不直接引导用户自己去下新版本?我想说真正待过几个项目的应该都知道,用户(尤其海外的)小白起来是非常小白的,没有人会跟着你一步步去下新版,安装,再卸旧版,只能尽可能自己做更多,让他们少做。 | 
|  |      27cvooc      2024-06-26 18:21:56 +08:00 这种实践一般是推出新包名 搭配新 icon 和 新程序名, 确保用户在手机上一眼可以认出是新程序(因与原 app 共存), 之后原有 APP 中添加更新提示引导用户更新, 至于是启动就弹窗告诉用户老应用直接停用了, 还是返回弹窗恶心人但是老 APP 还能继续用就看你们操作了 | 
|      28xiaoniukuaile      2024-06-26 23:15:21 +08:00 @Tomatopotato 非常中肯的回答 | 
|      291una0bserver      2024-06-27 12:05:31 +08:00 via Android 你不换还好,换包名的结果必然是大量用户流失,你引流到另一个软件和说明这个软件凉了差不多,用户也不是傻子,你要是恶心用户,用户完全可以要么继续用旧版要么用替代品。 | 
|  |      30burden7      2024-06-28 15:39:43 +08:00 我司的内部 b 端 app 前一段在“硬性要求”下刚换了一次包名,全部用户要重新安装 看你这个场景是 toc 的 app ,劝你领导趁早放弃,你也省得麻烦。不然你司收购的这个 app 所携带的老用户基本归零 |