uni-app 安卓在线升级时 manifest.json 无修改却报-1229错误
uni-app 安卓在线升级时 manifest.json 无修改却报-1229错误
项目 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | WINDOW10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.96 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 三星 |
手机机型 | S14 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
已经勾选了MAP模块 并填写KEY H5的MAP模块也填写了KEY
同样重新打包安装 ios是没问题 能升级 android 弹出1229
预期结果:
ios和android应该都能升级
实际结果:
ios可以升级
android弹出1229
都是同样的代码
bug描述:
安卓在线升级时,manifest.json无修改却报-1229错误
已经勾选了MAP模块 并填写KEY H5的MAP模块也填写了KEY
同样重新打包安装 ios是没问题 能升级 android 弹出1229 也就是代表android并没有打包进Map模块??
1 回复
在 uni-app 进行安卓在线升级时,如果遇到 -1229
错误,通常与 manifest.json
文件的配置或更新逻辑有关。即使 manifest.json
文件没有修改,也可能是因为某些配置或版本号问题导致的错误。
以下是一些可能的原因和解决方法:
1. 检查版本号
-
问题描述:
manifest.json
中的versionCode
和versionName
是应用升级的重要标识。如果新版本的versionCode
没有比旧版本高,可能会导致升级失败。 -
解决方法:
- 确保新版本的
versionCode
大于旧版本。 - 在
manifest.json
中,找到"app-plus" -> "distribute" -> "android"
,检查并更新versionCode
和versionName
。
{ "app-plus": { "distribute": { "android": { "versionCode": 2, // 确保比旧版本高 "versionName": "1.0.1" } } } }
- 确保新版本的
2. 检查签名文件
-
问题描述:如果新版本和旧版本的签名文件不一致,会导致升级失败。
-
解决方法:
- 确保新版本和旧版本使用相同的签名文件(.keystore 或 .jks 文件)。
- 在
manifest.json
中,检查"app-plus" -> "distribute" -> "android"
下的signature
配置。
{ "app-plus": { "distribute": { "android": { "signature": "your_keystore_file.keystore" } } } }
3. 检查更新逻辑
-
问题描述:如果更新逻辑有问题,比如请求的更新地址不正确,或者服务器返回的更新包有问题,也会导致
-1229
错误。 -
解决方法:
- 确保更新逻辑正确,检查更新地址和返回的更新包。
- 如果是使用 uni-app 的
plus.runtime
API 进行更新,检查代码逻辑是否正确。
plus.runtime.getProperty(plus.runtime.appid, function(wgtInfo) { // 请求服务器获取最新版本信息 uni.request({ url: 'https://your-server.com/check-update', success: function(res) { if (res.data.versionCode > wgtInfo.versionCode) { // 执行更新 plus.runtime.install(res.data.updateUrl, { force: true }); } } }); });