Skip to content

buildAndroidApp ​

UniApp Android 离线打包纯函数,整合项目构建、配置修改和模块集成等功能。

前置依赖 ​

依赖参数 ​

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.mkdirSyncFileSystem['mkdirSync']创建目录
deps.readdirSyncFileSystem['readdirSync']读取目录内容
deps.statSyncFileSystem['statSync']获取文件状态
deps.cpFileSystem['promises']['cp']异步复制目录
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.basenamePath['basename']获取文件名
deps.execChildProcess['exec']执行子进程命令
deps.platformstring进程平台信息
deps.parseJSON5Parser['parse']JSON5 解析函数
deps.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数
deps.xpathXPathXPath 查询库
deps.setTimeouttypeof setTimeout超时函数

环境要求 ​

  • @xmldom/xmldom: XML DOM 解析库
  • xpath: XPath 查询库
  • json5: JSON5 解析库
bash
npm install @xmldom/xmldom xpath json5

函数签名 ​

typescript
function buildAndroidApp(
  options: UniAppAndroidBuildOptions,
  deps: BuildAndroidAppDeps
): Promise<UniAppAndroidBuildResult>

参数 ​

参数名类型必填说明
options.uniappProjectPathstring是UniApp 项目路径
options.androidProjectPathstring是Android 项目路径
options.requireHybridHtmlboolean否是否强制要求本地 hybrid/html/index.html,默认 false。仅本地 hybrid 业务页流水线(如 pack 执行 sync-www)设为 true
optionsUniAppAndroidBuildOptions是其他构建选项
depsBuildAndroidAppDeps是依赖注入对象

hybrid 业务页 ​

  • uniappProjectPath/hybrid/ 存在时,会复制到构建产物的 hybrid/ 目录(含 hybrid/html/index.html)
  • 默认不校验 hybrid/html/index.html:缺失仅输出 warning,web-view 加载远程 H5 的纯壳工程可正常打包
  • requireHybridHtml: true 时,hybrid 目录或 hybrid/html/index.html 缺失会直接返回失败

返回值 ​

类型说明
Promise<UniAppAndroidBuildResult>Promise,解析为构建结果对象

工作原理 ​

  1. 验证项目路径:检查 UniApp 和 Android 项目路径是否存在
  2. 解析 manifest.json:读取并解析 UniApp 项目配置
  3. 检测项目结构:识别 Android 项目结构(HBuilder-Integrate-AS 或 simpleDemo)
  4. 构建 UniApp:执行 UniApp 构建命令
  5. 拷贝资源文件:将构建产物拷贝到 Android 项目
  6. 修改配置文件:更新 AndroidManifest.xml、build.gradle 等
  7. 集成第三方模块:根据配置集成登录、分享等模块
  8. 构建 Android 项目:执行 Android 构建命令
  9. 返回结果:包含成功状态、输出路径、错误信息和详细日志

整合了 UniApp 构建、Android 配置和模块集成的完整流程,适用于自动化打包场景。