一 背景
随着越來越多的金融行業基于
mPaas搭建并上線新的App,App的上線品質也成為各個客戶關注的重點。上線前檢測哪些項目,如何檢測,檢測資料名額包括哪些成為我們思考的主要方向。借着上次去XX農信客戶去做線上功能檢測,加上之前多個mPaas曆史項目的踩過的坑,将App上線前mPaas相關檢測内容整理沉澱如下。
二 檢測方向
1. 安全性
1.1 RPC是否開啟國密加密
對應金融性質的App來說,資料通信安全至關重要,mPaas已經支援 ECC、RSA 和國密(SM2)三種方式,
在金融行業App内建議開啟加密配置為SM2國密加密,滿足行業監管要求。配置可以參考文檔:
連結1.2 離線包是否開啟驗簽

為了保證下發到本地離線包的安全性,mPaas提供了離線包驗簽機制,保證了離線包的安全性。整體示意圖如上所示,使用者設定流程如下:
1. 開發者配置好一對公私鑰,私鑰放在服務端用于對離線包簽名,公鑰放在用戶端,用于對簽名對驗證。
2. 在離線包釋出平台,如果配置了簽名私鑰,平台下發的 amr 檔案就會帶上簽名資訊(通過私鑰對離線包的 hash 值加密後得到的密文)。
3. 用戶端在拿到 amr 包并解壓後,用戶端會使用在項目中預置的公鑰進行簽名的驗證(解密上一步的密文得到一個 hash 值,同時本地計算離線包的 hash 值,判斷兩者是否相同),如果相同則通過驗證。
4. 如果簽名校驗失敗,則删除離線包走fallback位址。
通過離線包的驗簽機制,可以達到以下的目的:
1. 保證了離線包的内容完整,解決解壓異常,讀取異常下的正常顯示
2. 保證了離線包的來源正确,不被本地惡意篡改
1.3 userId資訊是否設定正确
因為userId會被後續用到很多地方,比如推送,白名單。是以一般建議選擇服務端的userId字段作為存儲字段,友善後續和服務端做userId字段同步,不建議存儲個人手機号或者身份證等個人資訊作為userId。
1.4 埋點資訊是否包含敏感資訊,比如交易單号
考慮到埋點的量級很大,是以mPaas的埋點預設本地是沒有做資料加密的,是以埋點資訊不建議包含敏感字段,防止由于埋點導緻資訊洩漏。敏感字段建議走RPC的資料通道上報,保證資料安全。如果有埋點埋敏感字段的訴求,需要主動開啟埋點的本地加密配置。
1.5 隐私權限配置
由于現在監管機構對隐私權限管控比較嚴格,mPaas針對權限管控做了對應的接入方案。需要需要確定上線前隐私權限相關配置已經正常接入。
2. 穩定性
2.1 驗證在Android4.X版本的是否可以正常使用
mPaas最低支援Android4.3版本以上,是以釋出前需要驗證下低版本Android裝置的可用性,遇到比較多的是在Android4.X裝置上由于多dex加載導緻的類找不到導緻的安裝閃退問題。
2.2 iOS符号表是否正常上傳
釋出前需要確定iOS的符号表已經上傳到mPaas背景,友善背景反解閃退資訊。
2.3 熱修複子產品是否接入并且驗證通過
釋出前需要確定熱修複子產品的正常接入以及驗證通過,保證上線有針對Native子產品的熱修複能力,保證異常場景下的修複能力。
2.4 離線包Fallback域名确認
确認Fallback域名是否是外網可通路的位址,遇到過釋出後下發的還是内網位址的case
2.5 離線包子產品接入CDN
上線前做好容量評估,預設mPaas的離線包是存儲在OSS内的,但是一般建議針對離線包子產品接入CDN,通過CDN的緩存功能解決因為離線包下載下傳導緻帶寬打滿的風險,同時相對于OSS存儲來說,CDN的費用更低。接入示意圖如下:

2.6 RPC核心鍊路接口壓測
上線前需要對App核心鍊路的RPC接口做性能壓測,擷取接口性能瓶頸,可以用做後續的限流值的設定參考。同時需要針對RPC限流場景做演練,防止上線限流後用戶端出現各種異常。
2.7 釋出更新功能可用
上線前需要驗證釋出apk功能可用,包括釋出更新的強制更新功能,保證在極端場景下,需要強制更新使用。
3. 性能體驗
3.1 離線包離線功能是否正常生效
確定離線包的離線功能正常使用,防止由于離線包各種配置問題導緻離線功能不生效。
3.2 UC核心是否正常接入
確定UC核心正确配置接入,主要解決系統Webview下的各種相容性問題。同時UC提供了很好的穩定性,比系統webview更穩定。
3.3 核心鍊路離線包是否預制
在釋出前,需要預制核心鍊路離線包,保證核心鍊路在極端異常場景下仍然可以打開。