三个文件名,对应三个不同阶段
APK 是 Android 的安装包格式。AAB 是用于发布的 Android App Bundle,包含代码和资源,由分发工具根据设备配置生成安装包。split APK 则是一组共同构成应用的 APK,可能分别包含基础模块、语言、屏幕密度或处理器架构相关内容。
因此,“拿到了应用文件”还不够。先确认它是一个可独立安装的 APK、一个 AAB,还是一组需要一起安装的拆分包。修改扩展名不会改变内部结构。
只有 base.apk 时可能缺少什么
base.apk 的名称容易让人误以为它就是完整应用。对于拆分交付,它可能还依赖其他 split 提供设备需要的资源或 native 库。缺少这些内容时,安装可能直接失败,也可能在运行到相关功能时才暴露问题。
反过来,也不能见到 split 就把目录里所有不同来源的文件一起安装。同一安装集合需要保持版本、包名和签名等条件一致。来自不同下载批次的文件,不应仅凭名称相似就混用。
从自己构建的 AAB 生成测试包
bundletool 是官方用于处理 App Bundle 的工具。下面展示命令结构,路径需要替换为实际文件;签名配置应按发布流程设置,不要把私钥或密码写进公开教程。
java -jar bundletool.jar build-apks --bundle=app-release.aab --output=app.apks
java -jar bundletool.jar install-apks --apks=app.apks.apks 是 APK 集合归档,不是单个 APK。安装时让 bundletool 为连接的设备选择合适的包,可以减少手工选择 split 的错误。若设备不止一台,应按工具文档明确目标设备。
本地安装通过还不等于商店发布通过
本地测试验证的是特定设备上的安装与运行。商店还会检查发布配置、签名、目标 API、政策声明等独立条件。由本地生成的包能启动,不能推导出所有设备或分发渠道都可用。
Google Play App Signing 场景下,还需要区分上传密钥与分发给用户时使用的应用签名密钥。依赖签名证书的第三方服务配置,应以实际运行包的签名为准。
交接包时附带这些信息
- 文件类型:单 APK、AAB 或完整 APK 集合。
- 应用包名、versionCode 和 versionName。
- 产物 SHA-256 摘要,方便核对是否是同一份文件。
- 签名证书摘要,以及它属于调试、上传还是应用签名。
- 已经测试的设备、系统版本和具体操作路径。
把测试范围写清楚比标注“通用包”更有价值。对未覆盖的设备和功能保留未验证状态,可以避免下游把一次成功启动误当成完整验收。