套餐 A(舊版/基本版)
點擊或放下第一個 .apk / .xapk 文件
套餐B(新/更新版本)
點擊或放下第二個 .apk / .xapk 文件
為什麼比較 APK 版本可以防止更新失敗
當您在現有安裝上安裝較新版本的 Android 應用程式時,Android 的 PackageManager 會強制執行兩個嚴格的規則:新套件的 versionCode 必須大於或等於已安裝的版本,而 META-INF/(或 APK 簽章區塊 v2/v3)內的簽章憑證必須逐位元組相同。
- 簽署證書摘要匹配: 計算兩個套件中 .RSA / .DSA / .EC 簽章區塊的 SHA-256 指紋,以便您立即知道就地更新是否會成功而無需卸載。
- 原生 ABI 和 DEX 差異: 反白更新是否刪除了 32 位元 armeabi-v7a 庫或新增了新的 classes*.dex 檔案。
- CRC32 條目增量: 列出建置之間新增或刪除的確切檔案。
Android 如何評估軟體包更新(INSTALL_FAILED_UPDATE_INCOMPATIBLE)
用戶在更新旁載入應用程式時遇到的最常見錯誤之一是 “應用程式未安裝,因為套件與現有套件衝突”(在 ADB 日誌中稱為 INSTALL_FAILED_UPDATE_INCOMPATIBLE)。每當安裝的應用程式來自 Google Play 商店(使用開發人員的私有發布密鑰簽署)並且更新是從拆分 .xapk 存檔轉換而來(合併拆分後必須使用轉換器簽名密鑰重新簽名)時,就會發生這種情況。
但是,如果您的舊版本和新版本都是使用 xapktoapk.com 進行轉換的,我們的確定性簽名管道在各個轉換中使用相同的一致簽名證書,這意味著您可以將新的轉換後的 APK 直接安裝在舊的轉換後的 APK 之上,而無需卸載或丟失您的應用內進度!在安裝之前,使用上面的比較工具確認兩個檔案共用相同的憑證摘要。