欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
这个现象通常不是 App 没有真正更新,而是你把 wgt 资源版本 和 应用市场整包版本 混在一起了。
iOS 跳转到 App Store 更新完成后,再次进入 App,原生应用版本才会变化;
而你看到的“版本还是原来的”,一般是你本地代码里显示的旧版本号,或者你把 wgt 版本当成整包版本来判断了。
你需要先确认这几个点
-
App Store 是否已经真的发布了新版本
- 新版本必须已经审核通过并上架。
- 你在 App Store 看到的那个版本号,和你本地安装后的版本不是同一个判断方式。
-
iOS 整包更新看的是原生版本号,不是 wgt 热更新版本
- 应用市场只会识别整包的原生版本号。
- 如果你只是打了 wgt 包,App Store 不会认为有新版本。
- 只有原生包的版本号更高,App Store 才会显示“更新”。
-
你进入 App 后显示的“版本”可能还是旧代码
- 如果你页面里显示的是项目里的静态版本号、自己写的常量、或者缓存里的值,更新后当然还是旧的。
- 只有读取当前安装包的原生版本号,才能确认是否更新成功。
正确的验证方式
在 App 里读取当前应用版本号:
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, function(info) {
console.log('当前版本号:' + info.version)
})
// #endif
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
如果你要看原生版本号,iOS 主要看:
Info.plist 中的 CFBundleVersion
plus.runtime.versionCode
官方文档说明,iOS 平台云端打包后,应用版本号会写入 Info.plist 的 CFBundleVersion。
每次提交 App Store 审核时,都必须比上一次更高。
最常见原因
1)你更新的是 wgt,不是整包
这种更新不会让 App Store 认为应用整包升级了。
所以更新完成后,App Store 可能显示的还是“打开”而不是“更新”,或者你回到 App 后感觉“没变化”。
2)你把本地测试包版本号设置得不对
如果本地包的原生版本号不高于线上版本号,App Store 不会按“更新”处理。
官方文档里明确说明:
- iOS 平台应用版本号对应
Info.plist 中的 CFBundleVersion
- 每次提交 App Store 审核时都必须比上一次更高
参考:应用版本号
3)你页面里显示的是自己写死的版本
比如你代码里写了:
const version = '1.0.0'
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
更新后它当然不会自动变。
你这个场景建议这样处理
如果你现在是:
- 提示有新版本
- 跳转到 App Store
- 用户完成更新
- 再进入 App 还是旧版本
那就按下面顺序排查:
- 先确认 App Store 的新版本是否已经真正发布
- 确认你打的是 整包,不是只做了 wgt
- 确认
manifest.json 里的版本号已经比上一版更高
- 在 App 里用
plus.runtime.getProperty() 读取当前安装版本号
- 不要再用页面里写死的版本号判断更新结果
结论
- App Store 更新完成后,iOS 原生版本应该已经更新了
- 你看到“还是原来的版本”,大概率是你判断方式不对,或者你实际更新的是 wgt,不是整包
- 只有原生整包版本号更高,App Store 才会按更新处理
如果你愿意,我可以继续帮你判断你现在到底是 wgt 更新 还是 整包更新。
2 个回复
Ask小助手
这个现象通常不是 App 没有真正更新,而是你把 wgt 资源版本 和 应用市场整包版本 混在一起了。
iOS 跳转到 App Store 更新完成后,再次进入 App,原生应用版本才会变化;
而你看到的“版本还是原来的”,一般是你本地代码里显示的旧版本号,或者你把 wgt 版本当成整包版本来判断了。
你需要先确认这几个点
App Store 是否已经真的发布了新版本
iOS 整包更新看的是原生版本号,不是 wgt 热更新版本
你进入 App 后显示的“版本”可能还是旧代码
正确的验证方式
在 App 里读取当前应用版本号:
如果你要看原生版本号,iOS 主要看:
Info.plist中的CFBundleVersionplus.runtime.versionCode官方文档说明,iOS 平台云端打包后,应用版本号会写入
Info.plist的CFBundleVersion。每次提交 App Store 审核时,都必须比上一次更高。
最常见原因
1)你更新的是 wgt,不是整包
这种更新不会让 App Store 认为应用整包升级了。
所以更新完成后,App Store 可能显示的还是“打开”而不是“更新”,或者你回到 App 后感觉“没变化”。
2)你把本地测试包版本号设置得不对
如果本地包的原生版本号不高于线上版本号,App Store 不会按“更新”处理。
官方文档里明确说明:
Info.plist中的CFBundleVersion参考:应用版本号
3)你页面里显示的是自己写死的版本
比如你代码里写了:
更新后它当然不会自动变。
你这个场景建议这样处理
如果你现在是:
那就按下面顺序排查:
manifest.json里的版本号已经比上一版更高plus.runtime.getProperty()读取当前安装版本号结论
如果你愿意,我可以继续帮你判断你现在到底是 wgt 更新 还是 整包更新。
亦子渊 (作者)
appstore 都显示已经是最新版本了,设置,通用,iphone储存空间,看版本号也是最新的了,但是进入还是旧版本,必须要删除重新安装才生效
要回复问题请先登录或注册
公告
更多>相关问题