问题
uniapp 版本更新后,没有正确地配置版本号会导致应用内容未更新
1)情形一:新版本中页面路径有改动
1版本:A页面在 A 路径下
2版本:A页面改为在 B 路径下
2)情形二:新版本中新增页面
1版本:无A页面
2版本:有A页面
如上两种情况都会出现如下的结果:
如果直接安装2版本的apk,是可以成功打开A页面的
如果是从1版本升级到2版本,就报错提示找不到A页面对应的路径
解决方法
经过排查,uniapp的 应用版本名称 和 应用版本号 必须按照官方所提示的来配置。
1)原因一:应用版本名称我没用默认的值去递增,而是自己使用了语义化版本
系统默认值为:1.0.0。而我使用了:1.0.0-beta.1 此类的描述。
2)原因二:应用版本号我一直使用默认的,没去递增
系统默认值为:100。我这边一直没去改动该值。
3)方案
由下图可以看出,升级的时候,以下这两个版本号都需要去进行递增,并且使用官方的默认值去进行递增。如果实在需要使用语义化版本管理,可以在项目中新增一个 json 文件专门管理,或在打包之后对包进行命名即可。
最终改动如下(仍然拿开头的例子来举例):
1版本:无A页面(应用版本名称为:1.0.0
应用版本号:100
)
2版本:有A页面(应用版本名称为:1.0.1
应用版本号:101
)
并从 1版本升级到 2版本,此时能成功在 2版本中打开A页面,即更新成功。
结论
- 应用版本名称和应用版本号每次升级时都要进行
递增
(新值比旧值大即可,不一定要依次递增) - 应用版本名称使用
官方默认格式
,不要自定义格式