乐趣区

关于移动应用开发:排查指南-关于-mPaaSiOS-小程序打不开问题的解决方案

在咱们集成 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 –


退出移动版