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

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

常见原因

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

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

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

问题排查步骤

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

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

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

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;
}

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

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";
}

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-iOS 小程序打不开问题的解决方案相关推荐

  1. 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  2. 小程序的 HelloWord 01《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  3. 解决ios小程序,app底部黑线问题

    ios小程序,app底部黑线问题 项目场景:商场类型小程序有些页面是支付按钮是固定定位在页面底部的, 这里ios部分机型的黑线/导航条会处于按钮之中,影响操作 解决方案: 例如:有三种办法: 1.一棒 ...

  4. 微信小程序开发开篇词 自顶向下,云端赋能:小程序的高效开发之道

    你好,我是周俊鹏,做前端开发已经 6 年多了,目前我就职于腾讯云 TCB 团队,负责腾讯云开发 CloudBase 前端相关的研发和生态建设工作.我可以说是第一批次的微信小程序开发者,2016 年 9 ...

  5. 超市微信小程序怎么做_微信小程序便利店怎么开?便利店和百货超市怎么开发小程序?...

    微信小程序便利店怎么开?便利店和百货超市怎么开发小程序?下面跟随小编一起来看看吧! 现在很多商家还在小程序是什么,流行的说法是开店到微信,创建一个互联网离线模式,将近五公里的小程序显示出来,只要别人用 ...

  6. 微信小程序:二开版优化新紫色UI云开发新款壁纸小程序源码

    这是一款由旧版https://airymz.com/3387.html进行优化二开的一个新版本 本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 无需服务器.无需域名.云开发直接上 ...

  7. 小程序商城怎么开?开发商城小程序流程步骤介绍

    小程序商城怎么开? 本文主要是有上海小程序开发公司小编简单介绍的小程序商城怎么开的问题方法介绍. 1.想要开小程序商城需要选择好在什么小程序平台上面开商城,目前有微信小程序商城,百度智能小程序商城,支 ...

  8. php qcloud sdk weapp_微信小程序腾讯云php后台解决方案

    微信小程序腾讯云php后台解决方案 微信小程序前段需要添加必要的文件以配合后端 (1)wafer2-client-sdk sdk提供了几种接口包括登陆,获取用户openid,图片上传等 (2)conf ...

  9. 小程序商家如何开通云闪付支付功能

    近日,腾讯宣布微信支付支持全量商家小程序场景开通云闪付功能.微信支付实现与云闪付的在小程序支付场景的互联互通,无论是对于小程序商家还是用户而言,都让我们的体验变得更加便捷.那么云闪付支付功能可以满足哪 ...

最新文章

  1. LeetCode 1115. Print FooBar Alternately--多线程并发问题--Java解法--CyclicBarrier, synchronized, Semaphore 信号量
  2. 加码IoT生态圈:爱立信携手客户及合作伙伴共筑物联网之梦
  3. 网络与IO知识扫盲(四):C10K问题、BIO的弊端与NIO的引入
  4. Spring面试问题和答案
  5. JavaScript的那些书
  6. Java 读取PDF中的表格
  7. 如何给多段视频制作一行滚动字幕,并添加GIF表情包
  8. 初识Modern UI for WPF
  9. Pyscript,使用Python编写前端脚本
  10. Docker —— 从入门到实践
  11. cwber获取html,qq飞车手游CW、CWW、WCW怎么触发方法
  12. kali 解压rar
  13. 联想大数据“双拳”出击另有深意
  14. hadoop3.X 和 Hadoop 2.X的web端口号访问
  15. 获取淘宝客推广位id(adzone_id)
  16. VC6.0 MFC 模拟弹簧运动(改进版)
  17. 最佳实践 | 基于腾讯云ES如何跨地域容灾?跨集群复制为您解忧!
  18. STM32的标准库及其使用
  19. PN结正向压降温度特性的研究
  20. Process exited after 8.127 seconds with return value 3221226356,求解决方案!

热门文章

  1. micopython 18b20_[MicroPython]stm32f407控制DS18B20检测温度
  2. java getselecteditem_java – 将getSelectedItem()从JComboBox转换为int或任何其他东西
  3. python中exec是什么意思_Python中的进程分支fork和exec详解
  4. 找通项公式在线计算机,在线硬盘分区计算器工具
  5. qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...
  6. linux伙伴系统接口,Linux伙伴系统(一)--伙伴系统的概述
  7. 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现
  8. python 小程序搜索排名优化_python3 搜索关键字小程序
  9. linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行
  10. java多次点击时事件_click事件的累加绑定,绑定一次点击事件,执行多次