问题描述
APP 扫码 mPaas 小程序弹出 toast 信息:"应用更新错误(50002)"。
原因分析
通过扫码进行真机调试的正常流程如下:
- 在小程序 IDE 生成二维码,以供手机客户端扫描,同时会将小程序包上传至 mPaaS 控制台的小程序发布中。
- 手机客户端扫描此二维码后,会主动通过 RPC 请求去拉取控制台中的 AMR 文件。
当调用 MDS 小程序更新接口后,若没有获取对应的小程序信息,就会提示“应用更新错误(50002)”。这类问题可能的原因包括:
- 服务端尚未发布,包括:
- 控制台未发布上传的小程序。
- 小程序刚发布,但服务端尚未收到刚发布的小程序。
- 客户端版本不在范围内。
- 请求信息和服务端发布的规则不匹配。
排查思路
1. 过滤日志
在 Android Studio 控制台的日志信息中过滤关键字 DynamicRelease。查看 UnionResourceInfo 中是否有 Item 信息。
- 正常情况下,会含有 item 信息,示例如下:
- 若未包含 item 信息,则为异常,示例如下:
2. 检查接入真机预览和调试功能
按照Android 小程序接入真机预览与调试中的步骤检查检查接入真机预览和调试是否正确。
3. 检查客户端版本范围
版本号对应 Android 项目 versionName 值。只有当最低版本号 < 当前 App 版本号 < 最高版本号时,才能正常的拉取小程序。若不在这个范围,App 启动小程序时就会拉取失败,报 "应用更新错误"。
所以推荐在最低版本输入 0.0.0.0,最高版本不填写(表示无限大)。
注意事项
由于在小程序 IDE 上传、预览、真机调试会自动将小程序上传至控制台,无需用户在控制台修改配置信息,所以在创建小程序时,不推荐从小程序发布中添加小程序包,防止出现主路径不一致。如要修改小程序,可以在小程序 IDE 中修改。
4. 检查主入口路径
查看 mPaaS 控制台中填写的小程序主入口路径是否与小程序 IDE 中的主入口路径一致。
mPaaS控制台默认主路径格式为:/index.html#xxx/xxx/xxx/xxx
,其中 #
后方的 xxx/xxx/xxx/xxx
是小程序的 app.json
中的 pages
中的第一个值。
工单协助
如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,通过阿里云工单系统联系 mPaaS 售后技术支持。
撰文:刘启洋
-END-