安裝aab包的兩種方式

Flamesky發表於2024-10-08

`adb` 直接安裝 `.aab` 檔案是不支援的,因為 `.aab`(Android App Bundle)是針對 Google Play 分發的格式,並不能像 `.apk` 那樣直接安裝到裝置上。`.aab` 檔案本質上是一個容器,Google Play 使用它來生成裝置特定的 `.apk` 檔案。因此,必須將 `.aab` 檔案轉換為 `.apk` 或透過其他工具來安裝。

### 方法 1:使用 `bundletool` 轉換 `.aab` 為 `.apk`
為了在本地安裝 `.aab` 檔案,必須使用 Google 提供的 `bundletool` 工具將 `.aab` 轉換為可安裝的 `.apk` 檔案。

#### 步驟:
1. **下載並安裝 `bundletool`**:
- 從官方倉庫下載 `bundletool.jar`:[bundletool releases](https://github.com/google/bundletool/releases)。
- 將 `bundletool.jar` 放在你的工作目錄中。

2. **生成 `.apks` 檔案**:
- 使用 `bundletool` 將 `.aab` 檔案轉換為 `.apks` 檔案(這是一個包含了裝置特定 `.apk` 的 zip 檔案)。
- 在命令列中執行以下命令:

java -jar bundletool.jar build-apks --bundle=/path/to/your_app.aab --output=/path/to/output.apks --ks=/path/to/keystore.jks --ks-pass=pass:your_keystore_password --mode=universal --ks-key-alias=your_key_alias --key-pass=pass:your_key_password

引數說明:
- `--bundle`:指向你的 `.aab` 檔案路徑。
- `--output`:指向生成 `.apks` 檔案的路徑。
- `--ks` 和其他金鑰相關的引數:用於簽署生成的 `.apk` 檔案。需要使用你的簽名金鑰庫(keystore)。如果你不提供這些引數,`bundletool` 將會生成未簽名的 `.apk`,但它可能無法在裝置上安裝。

3. **安裝 `.apks` 檔案**:
- 使用 `bundletool` 直接安裝生成的 `.apks` 檔案到你的裝置:

java -jar bundletool.jar install-apks --apks=/path/to/output.apks

這會根據裝置的配置從 `.apks` 中提取適合該裝置的 `.apk` 檔案並安裝。

### 方法 2:上傳到 Google Play 內部測試通道
如果你不想透過本地方式安裝 `.aab` 檔案,另一種選擇是將 `.aab` 檔案上傳到 Google Play 的測試通道或內部測試,隨後透過 Play Store 測試應用。這種方式適合團隊協作或實際使用者測試。

#### 步驟:
1. 將 `.aab` 檔案上傳到 Google Play Console。
2. 設定內部測試或 Alpha/Beta 測試通道。
3. 邀請裝置上的 Google 帳戶參與測試。
4. 透過 Play Store 自動安裝已簽名的 `.apk`。

### 總結
由於 `.aab` 檔案無法透過 `adb` 直接安裝,建議使用 `bundletool` 來將其轉換為 `.apks`,然後再透過 `adb` 安裝。

相關文章