UNI_OUTPUT_DIR可指定H5输出根目录,如public/h5-prod;HTML名需通过manifest.json的h5.template自定义模板;APK名本地打包可在build.gradle中修改,云打包不可控;IPA名无法配置,仅能构建后脚本重命名。

uni-app H5 打包时如何控制输出文件名和路径
uni-app 默认的 npm run build 会把 H5 产物输出到 dist/build/h5,且 JS/CSS 文件带 hash,但 HTML 固定为 index.html,无法直接重命名。想自定义文件名(如 app.html)或输出到指定目录(如 public/h5-prod/),必须靠环境变量干预构建流程。
-
UNI_OUTPUT_DIR是核心变量,用于指定整个 H5 输出根目录,比如UNI_OUTPUT_DIR=public/h5-prod npm run build会把全部文件扔进该路径 - HTML 文件名由
vue.config.js中的configureWebpack.output.filename控制,但 uni-app 封装较深,不建议直接改 webpack 配置;更稳妥的方式是用manifest.json的h5.template字段指向自定义 HTML 模板,再在模板里保留index.html的注入逻辑 - JS/CSS 的 hash 名称不可禁用(出于缓存控制目的),但可通过
vue.config.js的configureWebpack.optimization.splitChunks调整 chunk 命名规则,影响生成的chunk-xxx.js文件前缀 - 注意:HBuilderX 图形界面打包不读取
UNI_OUTPUT_DIR,该变量仅对 CLI 命令生效;若用 HBuilderX,输出路径固定,只能后续手动移动或用脚本重命名
Android APK 文件名怎么改(不是包名)
APK 文件名本身和 android.package 无关,它只是打包产物的文件名,不影响安装或运行。但云打包或本地打包时,文件名默认是 uniaa_XXX.apk 或 app-release-signed.apk,没法直接在 manifest 或界面里改。
- 云打包无法自定义 APK 文件名,下载链接里的文件名由 DCloud 后端生成,前端不可控
- 本地离线打包(Android Studio 方式)可修改
app/build.gradle中的android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "myapp-v${variant.versionName}.apk" } } - 如果用 CLI 打包(
vue-cli-service uni-build --platform app-plus --target android),目前不支持传参改 APK 名,需依赖构建后脚本重命名 - 真正影响分发的是签名证书、包名、versionCode —— 这些才是应用市场和系统识别更新的依据,文件名只是表象
为什么改不了 iOS IPA 的文件名?
iOS 打包(云打包或 Xcode 本地打包)生成的 .ipa 文件名完全由构建工具链决定,uni-app 层面没有任何配置项可以干预。Xcode 归档导出时默认用 target 名 + 时间戳命名,例如 myapp_2026-09-04_15-22-33.ipa。
- 试图在
manifest.json或vue.config.js里加字段改 IPA 名,无效 - 云打包的 IPA 下载链接中文件名含随机字符串,不可预测也不可配置
- 若需统一归档命名,唯一可行方式是打包完成后,用 shell 或 Node.js 脚本根据
Info.plist里的CFBundleIdentifier和CFBundleShortVersionString重命名 IPA - 注意:IPA 内部结构(Payload/xxx.app/)的 bundle ID 才是系统识别关键,外部文件名纯属辅助
最常被忽略的一点:很多人以为改了 APK 文件名就能区分测试/正式版,其实真正起作用的是 android.package 和 versionCode。文件名只是你本地管理的便利手段,别把它和应用身份混淆。


















