# 打包生成 APK 和 AAB

在完成多端应用的模拟器调试或者真机后，开发者可构建 APK 并安装至手机进一步测试，测试完成后亦可构建正式版的 APK 用于提交应用市场进行审核，审核通过后即可上架。

**操作路径**：前往「微信开发者工具」工具栏，点击「构建 - 打包生成 APK」，进入云构建面板中完成相关配置，点击确定后即可生成 APK。

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04mlke2KHtZ-rmOQ5MQyPT1RUvdfMavOTMEl2tUc2_8cYbBBCVO0zAYOI59b2I2llsA)

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04tKsGtAfDEIbWR1L09p8x6AkvAtH3He6IBgk9thP9ac-P6D4hAqjCeC4ATQw-OXBrQ)

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04j1H2FeRwIbhjCt3-OYRTVbYyn3DGqfwwOoNQ47Wsx5ISVO_JnVrS0VisGQK15UUgQ)

## 一、构建次数

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04sCa0pdncRMVR3tC7O5XioIDldNS25h83u63jAxRc_ZnSZ9PBgW12BQZlhQlUY7NGQ)

云构建安装包需消耗较多资源，平台已提供基础发布与更新所需的免费次数，具体如下：
- 每位开发者在每个自然周可免费构建的 APK 次数为 50 次
- 如构建的版本仅涉及小程序代码变更，则不消耗次数
- 如构建的版本涉及原生内容，构建失败亦会消耗次数
- 升级到专业版可以获得更多的构建次数，详情可查看[升级至专业版](/miniprogram/dev/platform-capabilities/miniapp/handbook/web/pro)
- 当剩余的可构建次数为 0 时，开发者将无法使用「打包生成 APK」，但可使用「打包生成 APK（仅小程序）」，此构建方法基于本地基座 APK，仅更新小程序代码
  ![](https://res.wx.qq.com/op_res/kz_1rDLw2tknLzD08T9acAt9a0XrnbeE-bO1Xjj-Jb1Jo4Qmmh6XIL-UqntBwh8yxR0CZoFaErEIQvVXliCNRw)

## 二、基本信息

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04mlSspjg0s82h57ie7b7-hsigjU9nzGIsX-kQdzc5GIuPw1TMM7k6KmWIGfp0HUWww)

基本信息来源于 `project.miniapp.json`，如开发者需修改可前往 `project.miniapp.json` 修改。

## 三、包名信息

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04pLjmvcJ6Q5-6tZyqei2k9Rleig-b4zUPECwwjoougyhSEWtLTjv_EcXRKQKG-FiWw)

包名信息来源于多端应用控制台的配置，如开发者所创建的多端应用尚未绑定移动应用账号，则默认以平台分配的测试版 Package Name 作为本次构建的 APK 包名信息。
- 若开发者所创建的多端应用已绑定移动应用账号，则以移动应用配置的 Package Name 作为本次构建的 APK 包名信息
- 开发者如需修改，点击「去修改」即可跳转至微信开发者平台进行修改

## 四、证书配置

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04mtzwuUjjZUO5lpEcj7oJ_xzqQEGB1EEcdUbPQxiV6cEvx1L_aDjWVtBahvbmoxIWw)

生成 Android 的安装包需开发者提交相关证书信息，相关的配置以及说明如下：
- 证书别名：即证书的 `key-Alias`，该配置项为必填
- 证书密码：即证书的  `key-Password`，该配置项为必填
- 证书文件密码：即证书的  `storePassword`，该配置项为必填
- 签名文件：即选取签名文件的对应文件位置

若不清楚证书信息如何获取，可以查看 [Android 签名相关](android-cert)。

## 五、资源包配置

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04txhBOjsz0y9D0vbbk_fYY0WCBpHJrKo6LJGo8zZowMIFFxJ4fhsZgVTPCBxeu3nyg)

- 资源包的类型分别有：正式版、开发版、开发版（支持远程调试）以及开发版（支持热更新），关于这几个版本的区别以及应用场景可查看[版本介绍](/miniprogram/dev/platform-capabilities/miniapp/handbook/test/package)

## 六、应用版本配置

![](https://res.wx.qq.com/op_res/TsPQ5BbL7JwFXLHwjTY04qsduuZInRVgSx1gTMM28KT9v5u_6Euj4kzIgDQaqXOF0w7a5qPeR6cSwqLYuqPDDg)

应用版本信息来源于 `project.miniapp.json`，如开发者需修改可前往 `project.miniapp.json` 修改。

## 七、构建 AAB

- 如需上架 Google Play 可在构建 APK 的面板中，选择发布格式为 AAB

![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202311301025530.png)

## 八、命令行构建

开发者可以使用命令行构建的方式构建 APK。开发者需要先按照[开发者工具的命令行文档](/miniprogram/dev/devtools/cli.md)准备执行命令的环境，以及查看基础的用法。

按照如下步骤操作：

- 首先仔细阅读命令行的使用文档
- 根据文档执行 cli open --project 打开对应的项目
- 如果没有登录需要 cli login 登录
- 成功进入项目后，执行 cli build-apk。参数包括：
  - --project 项目路径
  - --keyPass 证书密码
  - --storePass 证书文件密码
  - --keyAlias 证书别名
  - --useAab 发布格式为 AAB 需要为 true（否则为 APK）
  - --keyStore 证书文件绝对路径
  - --desc 版本描述（非必填）
  - --output 构建产物的保存路径，需要为系统绝对路径
  - --isUploadResourceBundle 是否上传资源包（非必填）
  - --resourceBundleVersion 资源包版本号（非必填）
  - --resourceBundleDesc 资源包项目备注（非必填）
  - 应用版本名称，应用版本号在 `project.miniapp.json` 中配置 version，versionCodeCode

样例：/Applications/wechatwebdevtools.app/Contents/MacOS/cli build-apk --project /Users/zhangchen/WeChatProjects/miniprogram-18 --keyPass 123456 --storePass 123456 --keyAlias 123456 --useAab true --keyStore /Users/zhangchen/WeChatProjects/miniprogram-18/miniapp/android/android.keystore --output "/Users/zhangchen/Desktop/"

## 九、其他

Android 应用上架至不同的应用市场时，对于上传的 APK 包有不同的要求：32 位安装包、64 位安装包、32/64 位兼容安装包。

开发者可在`project.miniapp.json`通过勾选下方配置进行构建对应的安装包。

![](https://res.wx.qq.com/op_res/iWKxAkX6DmXvKx_Z9gVonCtdXyn2CMy9XWjITygvOakY-U6KBZyWax7YDWqv_wSq9e7spjrmTuA1cLp9sVXmmQ)

**说明：**

- 勾选 armeabi-v7a 将构建 32 位 安装包
- 勾选 arm64-v8a 将构建 64 位 安装包
- 同时勾选，则构建的是 32/64 位兼容安装包
- 均未勾选，则默认构建 64 位 安装包
