在咱们集成 mPaaS 插件并应用小程序的过程中,很多开发者遇到了打不开小程序的问题。明天就举例说明,开发者在实现根本接入后,尝试关上 H5 利用,但容器页面显示谬误提醒“设置标签”时,应该如何解决。
常见起因
mPaaS 框架在关上一个 H5 利用前,首先须要获知该利用离线包的根本信息。
因而客户端会被动通过 RPC 接口 alipay.client.getUnionResource 去拉取离线包信息。如果离线包信息获取失败,或没有命中要关上的指标利用,容器会提醒谬误“零碎忙碌,请稍后再试”。
针对这类问题,排查方向包含:查看 RPC 申请是否失常、查看环境和离线包公布是否匹配等。
问题排查步骤
(一)查看 RPC 申请是否失常
客户端须要被动拉取离线包信息,而拉取过程依赖 RPC 申请,如果 RPC 链路存在问题,则无奈失常获取离线包信息,导致加载失败。要确认 RPC 申请是否存在问题,须要在 Xcode 控制台中搜寻 alipay.client.getUnionResource 察看 RPC 申请是否失常返回。如果存在谬误,个别的错误代码包含 7XXX 或 3XXX 系列等,例如:
失常返回样例(result-status 为 1000):
1. Demo[83767:2555863] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
2. "Content-Encoding" = gzip;
3. "Content-Type" = "text/plain;charset=UTF-8";
4. Date = "Tue, 11 Aug 2020 05:01:37 GMT";
5. Vary = "Accept-Encoding";
6. "mgw-traceid" = 0a1cfd401597122097726853822435;
7. "result-status" = 1000;
8. "server-time" = 1597122097739;
9. }
谬误返回样例(result-status 不为 1000):
1. Demo[83383:2546279] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
2. "Content-Length" = 0;
3. "Content-Type" = "text/plain;charset=UTF-8";
4. Date = "Tue, 11 Aug 2020 04:50:08 GMT";
5. memo = "%E9%AA%8C%E7%AD%BERPC%E6%8E%A5%E5%8F%A3%20%E5%8A%A0%E7%AD%BE%E6%95%B0%E6%8D%AE%E4%B8%BA%E7%A9%BA";
6. "mgw-traceid" = 0a1d7667159712140890222728553;
7. "result-status" = 7014;
8. "server-time" = 1597121408902;
9. tips = "%E9%AA%8C%E7%AD%BERPC%E6%8E%A5%E5%8F%A3%20%E5%8A%A0%E7%AD%BE%E6%95%B0%E6%8D%AE%E4%B8%BA%E7%A9%BA";
10. }
RPC 7XXX 系列谬误的解决办法
7XXX 类谬误均与 RPC 申请的签名验证过程无关,常见错误代码及起因如下:
错误码 | 阐明 | 示例 |
---|---|---|
7000 | 没有设置公钥 | 挪动 APP 中无线保镖中无 appId 对应的密钥或者网关无奈获取 appId 对应的签名密钥。 |
7001 | 验签的参数不够 | 网关服务端验证签名不通过。 |
7002 | 验签失败 | 网关服务端验证签名不通过。 |
7003 | 验签 - 时效性失败 | API 申请入参 ts 工夫戳超过零碎设置的工夫有效性。须要查看客户端工夫是否为零碎工夫。 |
7007 | 验签 - 短少 ts 参数 | API 申请短少验签 ts 参数。 |
7014 | 验签 - 短少 sign 参数 | API 申请短少验签 sign 参数。个别状况下是客户端签名数据失败,导致缺失 sign 参数。请查看客户端无线保镖图片是否正确。 |
(二)根本排查动作
1. 查看 mPaaS 控制台设置的 Bundle ID 与 iOS 工程是否完全一致,包含:
mPaaS 控制台(控制台 > 代码配置 > iOS)上设置的 Bundle ID:
工程的 Bundle “Indentifier:
工程中 Info.plist 的 Bundle Indentifier:
2. 控制台下载的 .config 文件内容与我的项目中的 meta.config 是否完全一致:
mPaaS 控制台下载的 .config 文件:
工程中的 meta.config 文件:
3. 客户端设施的工夫是否为以后工夫,时间误差必须小于 8 小时。
4. 如果上述查看存在信息不统一,则查看不通过,倡议:
- 批改工程中的信息,确保与 mPaaS 控制台统一。
- 如果手机工夫信息不正确,请修改工夫配置。
- 从控制台下载最新 .config 文件,通过 mPaaS Extension 插件从新导入:
- 确认所有信息正确后,卸载已装置的 App,从新打包编译后进行调试,察看 RPC 7XXX 类谬误是否失去解决。
(三)查看 H5 App 信息和公布状态是否正确
客户端须要被动拉取离线包信息,在 RPC 申请失常返回的前提下,如果服务端没有返回指标离线包的信息,也会导致加载失败的谬误,谬误起因为离线包 AppNotExist 不存在。
根本查看动作:
1. 依据查看 RPC 申请是否失常的阐明,确认 alipay.client.getUnionResource
RPC 申请是否能够失常返回。
2. 在 Xcode 控制台搜寻谬误关键字 AppNotExist,确认问题根因是否为找不到指标 H5 App,例如:
3. 在 mPaaS 控制台和 iOS 工程中穿插确认如下信息,包含:
- worksapceId、appId、mpaasapi 等元数据:控制台和 meta.config 中的相干配置要完全一致,如果不统一,须要从新下载 .config 文件并导入。
- 指标离线包 ID:离线包治理页中的离线包 ID 要和工程代码中要关上的离线包 ID 统一;
- 查看离线包公布状态,确认离线包是否存在一个处于公布状态的版本:
- 查看离线包公布状态,确认离线包资源类型:必须为“一般资源包”;“全局资源包”不可间接关上;
- 查看离线包公布状态,确认该公布的离线包版本:必须 大于 客户端已装置的离线包版本;
- 查看离线包公布状态,确认该公布笼罩的客户端版本范畴:必须笼罩测试 App 的以后版本号;留神:iOS 我的项目中,客户端版本号依赖 info.plist 中的 Produc Version 字段,而不是 Xcode 我的项目 version,这里须要开发者手动同步。
工单帮助
如果仍然不能解决问题,请筹备好相干问题的复现 Demo 工程,通过阿里云工单零碎分割 mPaaS 售后技术支持。
下期预报
mPaaS 小程序启动始终 Loading 该如何排查?
撰文:滕宏才
– END –