Hybrid App 中如何管理不同平台的 JSBundle 版本?
我们用 Vue 做了一个 Hybrid 应用,原生端通过 WebView 加载本地打包好的 JSBundle。但每次发版 iOS 和 Android 的 bundle 路径或版本号不一致,导致线上用户经常加载旧资源,甚至白屏。有没有靠谱的版本管理方案?
目前尝试在 index.html 里加时间戳参数,但原生端预加载的是固定文件名,改了反而找不到。下面是我们当前的入口模板:
<div id="app"></div>
<script src="./js/app.js?v=1.2.3"></script>
<script>
// 原生端注入 window.nativeVersion = '2.0.1'
if (window.nativeVersion !== '1.2.3') {
console.warn('前端与原生版本不匹配!');
}
</script>
但这样硬编码版本号根本没法自动化,CI/CD 时也容易出错。求问大家是怎么处理这种多端资源版本对齐问题的?
发版时把version.json和bundle一起打包到assets里。