头图

技术干货 | 应用上线前的“体检”,你知道需要检测哪些指标吗?

简介:应用上线前检测哪些项目?如何检测?检测数据指标包括哪些?
随着越来越多的企业基于 mPaaS 搭建并上线新的 App,App 的上线质量也成为各个客户关注的重点。上线前检测哪些项目?如何检测?检测数据指标包括哪些?
image.png

借着上次去 XX 农信客户去做线上功能检测,加上之前多个 mPaaS 历史项目的经验总结,将 App 上线前 mPaaS 相关检测内容整理沉淀如下。
一、安全性
1.1 RPC 是否开启国密加密

对 App 来说,数据通信安全至关重要,mPaaS 已经支持 ECC、RSA 和国密(SM2)三种方式。其中,在金融行业 App 内建议开启加密配置为 SM2 国密加密,满足行业监管要求。配置可以参考产品文档:数据加密
1.2 离线包是否开启验签
image.png

为了保证下发到本地离线包的安全性,mPaaS 提供了离线包验签机制,保证了离线包的安全性。整体示意图如上所示,用户设置流程如下:

  1. 开发者配置好一对公私钥,私钥放在服务端用于对离线包签名,公钥放在客户端,用于对签名对验证。
  2. 在离线包发布平台,如果配置了签名私钥,平台下发的 amr 文件就会带上签名信息(通过私钥对离线包的 hash 值加密后得到的密文)。
  3. 客户端在拿到 amr 包并解压后,客户端会使用在项目中预置的公钥进行签名的验证(解密上一步的密文得到一个 hash 值,同时本地计算离线包的 hash 值,判断两者是否相同),如果相同则通过验证。
  4. 如果签名校验失败,则删除离线包走 fallback 地址。
    通过离线包的验签机制,可以达到以下的目的:
  5. 保证了离线包的内容完整,解决解压异常,读取异常下的正常显示
  6. 保证了离线包的来源正确,不被本地恶意篡改
    1.3 userId 信息是否设置正确
    因为 userId 会被后续用到很多地方,比如推送,白名单。所以一般建议选择服务端的 userId 字段作为存储字段,方便后续和服务端做 userId 字段同步,不建议存储个人手机号或者身份证等个人信息作为 userId。
    1.4 埋点信息是否包含敏感信息,比如交易单号
    考虑到埋点的量级很大,所以 mPaas 的埋点默认本地是没有做数据加密的,所以埋点信息不建议包含敏感字段,防止由于埋点导致信息泄漏。敏感字段建议走 RPC 的数据通道上报,保证数据安全。如果有埋点埋敏感字段的诉求,需要主动开启埋点的本地加密配置。
    1.5 隐私权限配置
    由于现在监管机构对隐私权限管控比较严格,mPaas 针对权限管控做了对应的接入方案。需要需要确保上线前隐私权限相关配置已经正常接入。
    二、稳定性
    2.1 验证在 Android4.X 版本的是否可以正常使
    mPaaS 最低支持 Android 4.3 版本以上,所以发布前需要验证下低版本 Android 设备的可用性,遇到比较多的是在 Android 4.X 设备上由于多 dex 加载导致的类找不到导致的安装闪退问题。
    2.2 iOS 符号表是否正常上传
    发布前需要确保 iOS 的符号表已经上传到 mPaaS 后台,方便后台反解闪退信息。
    2.3 热修复模块是否接入并且验证通过
    发布前需要确保热修复模块的正常接入以及验证通过,保证上线有针对 Native 模块的热修复能力,保证异常场景下的修复能力。
    2.4 离线包 Fallback 域名确认
    确认 Fallback 域名是否是外网可访问的地址,遇到过发布后下发的还是内网地址的 case。
    2.5 离线包模块接入 CDN
    上线前做好容量评估,默认 mPaaS 的离线包是存储在 OSS 内的,但是一般建议针对离线包模块接入 CDN,通过 CDN 的缓存功能解决因为离线包下载导致带宽打满的风险,同时相对于 OSS 存储来说,CDN 的费用更低。接入示意图如下:
    image.png

2.6 RPC 核心链路接口压测
上线前需要对 App 核心链路的 RPC 接口做性能压测,获取接口性能瓶颈,可以用做后续的限流值的设定参考。同时需要针对 RPC 限流场景做演练,防止上线限流后客户端出现各种异常。
2.7 发布更新功能可用
上线前需要验证发布 apk 功能可用,包括发布更新的强制更新功能,保证在极端场景下,需要强制升级使用。
三、性能体验
3.1 离线包离线功能是否正常生效
确保离线包的离线功能正常使用,防止由于离线包各种配置问题导致离线功能不生效。
3.2 UC 内核是否正常接入

确保 UC 内核正确配置接入,主要解决系统 WebView 下的各种兼容性问题。同时 UC 提供了很好的稳定性,比系统 WebView 更稳定。
3.3 核心链路离线包是否预制
在发布前,需要预制核心链路离线包,保证核心链路在极端异常场景下仍然可以打开。
image.png
原文链接
本文为阿里云原创内容,未经允许不得转载。


阿里云栖号
汇集阿里技术精粹-yq.aliyun.com

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
0 条评论
推荐阅读
Java编程技巧之单元测试用例简化方法
意思是:“ 一部书的篇幅太长,让人看见就害怕。”编写单元测试用例也是如此,如果单元测试用例写起来又长又复杂,自然而然地会让人“望而生畏”,于是开始反感甚至于最终放弃。为了便于Java单元测试的推广,作者总结...

阿里云云栖号阅读 174

如何满速下载百度网盘文件
在我们开心的网上冲浪时,经常会遇到某些资源是用百度网盘储存的,而百度网盘的下载速度经常是1MB以下、几十K、几百K,令人十分着急!!突然,一个 微信公众号 自称软件小妹的大佬出现了,直接为我们带来了一个 油...

小红石1阅读 5.9k

封面图
iOS 健康共享失败如何解决
您要开始与之共享的对象必须已经连同他们的 iCloud 账户邮箱一起保存在您的“通讯录”中(iCloud 账户邮箱即 iCloud 账户绑定的邮箱信息,不是强制要求 @iCloud.com 邮箱)。

岚哲阅读 5.1k

探究 iOS 内存问题
本文从 Tagged Pointer、objc 源码、dealloc 原理、AutoreleasePool 原理、野指针探究等技术点展开聊了聊 iOS 内存相关问题。

杭城小刘1阅读 1.4k

封面图
iOS IDA逆向之patch
这里介绍的是ida的patch.1.搜索svc #0x80,回到IDA View-A界面,才能正确搜索点击图中T字按钮,弹出搜索框点击列表中进入2.修改svc #0x80,在IDA View-A界面中选中svc那一行,点击工具栏Edit-->Patch program--&gt...

宋冬野阅读 2k

社交场景下iOS消息流交互层实践
一款社交产品的诞生,离不开即时通讯(IM)场景。随着团队业务版图在社交领域的布局,诞生了多个社交场景APP,涉及的IM场景,包含私聊、群聊、聊天室等。

云音乐技术团队1阅读 438

封面图
SegmentFault 思否技术周刊 Vol.77 — 探究关于 iOS 的特性
本文从 Tagged Pointer、objc 源码、dealloc 原理、AutoreleasePool 原理、野指针探究等技术点展开聊了聊 iOS 内存相关问题。

Beverly阅读 1.4k

封面图

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
宣传栏