`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` 安装。