HarmonyOS 打包产物重命名问题

如何修改products/phone/build/default/outputs/default/phone-default-signed.hap这个产物的文件名?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

在hvigorfile.ts里:

import { hapTasks, OhosHapContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin'
import { getNode } from '@ohos/hvigor'
import { hvigor } from '@ohos/hvigor'

const entryNode = getNode(__filename)
const appContext = hvigor.getRootNode().getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext
const appJsonOpt = appContext.getAppJsonOpt()
const versionName = appJsonOpt['app']['versionName']
entryNode.afterNodeEvaluate(node => {
  const hapContext = node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext
  if (hapContext && hapContext.getBuildProfileOpt) {
    const buildProfile = hapContext.getBuildProfileOpt()
    const product = buildProfile.targets[0]
    product['output'] = {
      "artifactName": "xxx-" + versionName + '_' + getTime() + '_' + appContext.getBuildMode(),
    }
    hapContext.setBuildProfileOpt(buildProfile)
  }
})

function getTime(): string {
  let date = new Date()
  let year = date.getFullYear()
  let month = (date.getMonth() + 1).toString().padStart(2, '0')
  let day = date.getDate().toString().padStart(2, '0')
  let hours = date.getHours().toString().padStart(2, '0')
  let minutes = date.getMinutes().toString().padStart(2, '0')
  return `${year}-${month}-${day}_${hours}_${minutes}`
}

export default {
  system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins: [] /* Custom plugin to extend the functionality of Hvigor. */
}
分享
微博
QQ
微信
回复
2天前
相关问题
sign包和unsign包产物之间是否有差异
789浏览 • 1回复 待解决
JSON反序列化,如何重命名字段?
264浏览 • 1回复 待解决
HarmonyOS 打包相关问题
58浏览 • 1回复 待解决
HarmonyOS module打包问题
88浏览 • 1回复 待解决
HarmonyOS HAR包被重复打包问题
518浏览 • 1回复 待解决
HarmonyOS应用打包测试问题
19浏览 • 1回复 待解决
HarmonyOS应用打包CPU架构相关问题
133浏览 • 0回复 待解决
HarmonyOS ArkTS有命名空间吗
524浏览 • 1回复 待解决
HarmonyOS 应用的包名命名规则
994浏览 • 1回复 待解决
har 包多层依赖打包问题咨询
320浏览 • 1回复 待解决
HarmonyOS App打包上架及版本升级问题
39浏览 • 1回复 待解决