美文网首页
排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方

排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方

作者: 阿里云云栖号 | 来源:发表于2020-12-15 10:34 被阅读0次

简介:让天下没有打不开的小程序!!!

在我们集成 mPaaS 插件并使用小程序的过程中,很多开发者遇到了打不开小程序的问题。今天就举例说明,开发者在完成基本接入后,尝试打开 H5 应用,但容器页面显示错误提示“设置标签”时,应该如何解决。

常见原因

mPaaS 框架在打开一个H5应用前,首先需要获知该应用离线包的基本信息。

因此客户端会主动通过RPC接口alipay.client.getUnionResource去拉取离线包信息。如果离线包信息获取失败,或没有命中要打开的目标应用,容器会提示错误 “系统繁忙,请稍后再试”。

针对这类问题,排查方向包括:检查 RPC 请求是否正常、检查环境和离线包发布是否匹配等。

问题排查步骤

(一)检查 RPC 请求是否正常

客户端需要主动拉取离线包信息,而拉取过程依赖 RPC 请求,如果RPC 链路存在问题,则无法正常获取离线包信息,导致加载失败。要确认 RPC 请求是否存在问题,需要在 Xcode 控制台中搜索 alipay.client.getUnionResource 观察 RPC 请求是否正常返回。如果存在错误,一般的错误代码包括 7XXX 或 3XXX 系列等,例如:

正常返回样例(result-status 为 1000):

<pre class="public-DraftStyleDefault-pre" data-offset-key="ccd1l-0-0" style="margin: 1.4em 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px; color: rgb(18, 18, 18); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">

<pre class="Editable-styled" data-block="true" data-editor="989g6" data-offset-key="ccd1l-0-0" style="margin: 0px; padding: 0px; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: initial; background: rgb(246, 246, 246); border-radius: 0px;">

Demo[83767:2555863] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
"Content-Encoding" = gzip;
"Content-Type" = "text/plain;charset=UTF-8";
Date = "Tue, 11 Aug 2020 05:01:37 GMT";
Vary = "Accept-Encoding";
"mgw-traceid" = 0a1cfd401597122097726853822435;
"result-status" = 1000;
"server-time" = 1597122097739;
}

</pre>

</pre>

错误返回样例(result-status 不为 1000):

<pre class="public-DraftStyleDefault-pre" data-offset-key="fuvu8-0-0" style="margin: 1.4em 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px; color: rgb(18, 18, 18); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">

<pre class="Editable-styled" data-block="true" data-editor="989g6" data-offset-key="fuvu8-0-0" style="margin: 0px; padding: 0px; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: initial; background: rgb(246, 246, 246); border-radius: 0px;">

Demo[83383:2546279] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
"Content-Length" = 0;
"Content-Type" = "text/plain;charset=UTF-8";
Date = "Tue, 11 Aug 2020 04:50:08 GMT";
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";
"mgw-traceid" = 0a1d7667159712140890222728553;
"result-status" = 7014;
"server-time" = 1597121408902;
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";
}

</pre>

</pre>

RPC 7XXX 系列错误的处理方法

7XXX 类错误均与 RPC 请求的签名验证过程有关,常见错误代码及原因如下:

|

错误码

|

说明

|

示例

|

(二)基本排查动作

1. 检查 mPaaS 控制台设置的 Bundle ID 与 iOS 工程是否完全一致,包括:

mPaaS 控制台(控制台 > 代码配置 > iOS)上设置的 Bundle ID:

image

工程的 Bundle "Indentifier:

[图片上传失败...(image-d21892-1608000095482)]

工程中 Info.plist 的 Bundle Indentifier:

image

2. 控制台下载的 .config 文件内容与项目中的 meta.config 是否完全一致:

mPaaS 控制台下载的 .config 文件:

image

工程中的 meta.config 文件:

image

3. 客户端设备的时间是否为当前时间,时间误差必须小于 8 小时。

4. 如果上述检查存在信息不一致,则检查不通过,建议:

  • 修改工程中的信息,确保与 mPaaS 控制台一致。

  • 如果手机时间信息不正确,请修正时间配置。

  • 从控制台下载最新 .config文件,通过mPaaS Extension 插件重新导入:

image
  • 确认所有信息正确后,卸载已安装的 App,重新打包编译后进行调试,观察 RPC 7XXX 类错误是否得到解决。

(三)检查 H5 App 信息和发布状态是否正确

客户端需要主动拉取离线包信息,在 RPC 请求正常返回的前提下,如果服务端没有返回目标离线包的信息,也会导致加载失败的错误,错误原因为离线包 AppNotExist 不存在。

基本检查动作:

1.根据检查RPC请求是否正常的说明,确认alipay.client.getUnionResource RPC请求是否可以正常返回。

2.在 Xcode 控制台搜索错误关键字 AppNotExist,确认问题根因是否为找不到目标 H5 App,例如:

image

3.在 mPaaS 控制台和 iOS 工程中交叉确认如下信息,包括:

  • worksapceId、appId、mpaasapi 等元数据:控制台和 meta.config 中的相关配置要完全一致,如果不一致,需要重新下载 .config 文件并导入。

  • 目标离线包 ID:离线包管理页中的离线包 ID 要和工程代码中要打开的离线包 ID 一致;

  • 查看离线包发布状态,确认离线包是否存在一个处于发布状态的版本:

image
  • 查看离线包发布状态,确认离线包资源类型:必须为“普通资源包”;“全局资源包”不可直接打开;

  • 查看离线包发布状态,确认该发布的离线包版本:必须 大于 客户端已安装的离线包版本;

  • 查看离线包发布状态,确认该发布覆盖的客户端版本范围:必须覆盖测试 App 的当前版本号;注意:iOS 项目中,客户端版本号依赖info.plist 中的 Produc Version 字段,而不是 Xcode 项目 version,这里需要开发者手动同步。

image image

工单协助

如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,通过阿里云工单系统联系 mPaaS 售后技术支持。

查克拉空

原文链接

本文为阿里云原创内容,未经允许不得转载

相关文章

  • 排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方

    简介:让天下没有打不开的小程序!!! 在我们集成 mPaaS 插件并使用小程序的过程中,很多开发者遇到了打不开小程...

  • 微信小程序开发资源汇总

    本文收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。本文不是一遍关于如何学习微信小程序的入门指南,...

  • 微信小程序在部分ios机型打不开oss上的图片或webp图片

    微信小程序在部分ios机型打不开webp图片 在image标签添加 webp='true',可解决问题; oss上...

  • 小程序踩坑

    主要内容 记录小程序开发中碰到的问题以及解决方案 CSS部分 解决小程序按钮border无法清除问题 小程序按钮 ...

  • canvas画布不显示

    问题 微信小程序转支付宝小程序发现微信的画布在支付宝不显示,排查问题所在:参考 https://opensuppo...

  • 排查问题指引

    重要性 写程序的80%的时候都是在发现问题,解决问题.因此快速排查问题可以大大提升效率. 提取问题 提取问题 ==...

  • 微信小程序开发常见问题及解决方案

    我们在做微信小程序开发的过程中,总会遇到各种奇葩的问题。今天就把我在小程序开发过程中遇到的各种问题,及对应的解决方...

  • 日志

    日志 日志:记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题可用于 问题追踪:辅助排查和定位线上问题,...

  • 2020-04-12

    ##小程序,大世界 ###简介 · 小程序解决了什么问题 · 小程序技术栈 HTML/CSS/JavaScript...

  • 2018-11-10

    解决小程序textarea的高度自适应问题

网友评论

      本文标题:排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方

      本文链接:https://www.haomeiwen.com/subject/gbgigktx.html