增量更新環節案例(一)
測試服(不限制ip)驗證完成,到正式服(限制ip)開白名單驗證,然後在線上灰度,正式對外,灰度是要看情況的。
測試要求:
要求是appversion1.0.2 resversion 1031 -> 升級後appversion不變,resversion 1032
當時測試組有人配置了1個補丁,每次由1個人來操作,平時這個流程很成熟的,這次也出了問題,卡了一會,這裡做分享。
補丁包更新確保以下是正確的:
檔案正確上傳ftp檔案管理位置(國外對應國外的,國內也是)
資源版本號和檔案數量正確並且合法
檔案大小正確,補丁路徑個事正確。
整個patch路徑正確-可支援url複製下載到資源
對應版本版本號也在合法區間內
一切通過後,patch檔案裡做檔案差異,有運行遊戲後做ptach檢查,發現補丁更新失敗。
步驟如下:
1) 啟動遊戲,初始化sdk,啟動sdk載入平臺賬號ok
2) 獲取伺服器列表ok,客戶端檔案匹配resversion 1321和appversion 1.0.2,觸發更新
3) 時光機步驟過了殼到遊戲的部分,patch條一直在轉,然後提示更新失敗(平臺自定義的文字提示)
當時沒有直接連線調式打log,選擇先檢查後臺,發現資源地址配置xxx.com/ filepath/filename(patch_1032_4.hl)前面缺少http://
這是1個疏忽性的問題,直接把資源地址配置放在url裡,也是可以下載,但在配置裡是需要寫完整的,不支援自動解析。
Ip解析的域名帶下劃線,當時覺得有點奇怪,測試組修改了patch名稱後,就可以更新了。
發現可以更新後,完成smoke和特徵測試後就釋出上線了,當時渠道方也在登陸測試,也出現了補丁包更新失敗,模擬器步驟更新失敗和android更新失敗。
Ps:遊戲增量更新需要保證
1.如果更改了庫檔案,特殊載體需要驗證。根據實際情況一定比例
2.ios,android需要上線驗證。
3.對模擬器操作上線驗證。根據實際情況一定比例
當時提示對方也在更新,所以建議對方需要在設定-應用管理-指定應用-清除資料和關閉之前程序,在開1次才可以更新到patch。這裡需要了解在什麼情況下,檔案變更或者驅動變更才可以生效。
但是我們這邊沒有復現沒法打logcat,對方一時也找不到人打logcat,所以我根據經驗要求對方一起做了很多驗證(重新安裝包,記憶體剩餘空間檢查,模擬器清除資料等),這裡略過。
對方抓了log發回來,發現java解析補丁檔案失敗,也有幾個system.err()系統異常的。
最後發現是ip轉換域名裡使用下劃線導致的,會導致部分手機中http讀寫失敗,會進行自動拒絕不合法域名,最早的dns語法裡沒有包含下劃線,這個是失誤了。
Java本身也自帶了方法url url string,處理過程就不描述了。
總結:
對於已經成熟環節,但在質量比較重要環節有點投入輕視。
遊戲較多,不清楚的配置可以檢查上一份版本的配置,做為參考。之前配置的應該在後臺有一份,在本地txt也需要留一份。
本地不可復現,儘快讓對方傳log回來。
同安裝軟體路徑地址一樣,絕對路徑不使用中文和特殊符號,特別留意下劃線_,連線符-,多餘的點號.。