uni-app vue3发布成鸿蒙,打包始终失败

09:15:27.170 开始制作安装包 .app,请耐心等待 …

09:15:30.365 > hvigor ERROR: SDK component missing. Please verify the integrity of your SDK.

hvigor ERROR: BUILD FAILED in 1 s 865 ms
09:15:30.365 安装包制作失败

image
image


很多问题都可以在这里找到答案,

我最终打包失败,大概率是vue2转到vue3的代码有问题。我试了用vue3版本打安卓包,也不能用。。。还是等vue3打安卓没问题后,再尝试打鸿蒙吧!


更多关于uni-app vue3发布成鸿蒙,打包始终失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

build-profile.json5
{
“app”: {
“signingConfigs”: [
{
“name”: “default”,
“type”: “HarmonyOS”,
“material”: {

    }  
  },  
  {  
    "name": "release",  
    "type": "HarmonyOS",  
    "material": {  

    }  
  }  
],  
"products": [  
  {  
    "name": "default",  
    "signingConfig": "default",  
    "compatibleSdkVersion": "5.0.0(12)",  
    "runtimeOS": "HarmonyOS",  
    "targetSdkVersion": "5.0.0(12)",  
    "bundleType": "app",  
    // 修改为允许的值之一  
    "versionCode": 1,  
    "versionName": "1.0.0",  
    "output": {  
      // 修改为对象并添加 artifactName 属性  
      "artifactName": "default.hap"  
    },  
    "arkTSVersion": "1.0",  
    // 修改为允许的值之一  
    "vendor": "",  
    "bundleName": ""  
  },  
  {  
    "name": "release",  
    "signingConfig": "release",  
    "compatibleSdkVersion": "5.0.0(12)",  
    "runtimeOS": "HarmonyOS",  
    "compileSdkVersion": "5.0.0(12)",  
    "targetSdkVersion": "5.0.0(12)",  
    "bundleType": "app",  
    // 修改为允许的值之一  
    "versionCode": 1,  
    "versionName": "1.0.0",  
    "output": {  
      // 修改为对象并添加 artifactName 属性  
      "artifactName": "release.hap"  
    },  
    "arkTSVersion": "1.0",  
    // 修改为允许的值之一  
    "vendor": "",  
    "bundleName": ""  
  }  
],  
"buildModeSet": [  
  {  
    "name": "debug"  
  },  
  {  
    "name": "release"  
  }  
]  

},
“modules”: [
{
“name”: “entry”,
“srcPath”: “./entry”,
“targets”: [
{
“name”: “default”,
“applyToProducts”: [
“default”,
“release”
]
}
]
}
]
}

更多关于uni-app vue3发布成鸿蒙,打包始终失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决办法:

你可能声明了不兼容的字段,需要在 harmony-mp-configs/build-profile.json5 里面去掉 app.products.*.compileSdkVersion 属性

马上又遇到新问题了。。。

ERROR: Bytecode HARs: [@uni_modules/uni-payment-alipay, @dcloudio/uni-app-runtime, @uni_modules/hmr-for-uni-app] not supported when useNormalizedOHMUrl is not true.

Try the following:

Please check useNormalizedOHMUrl in the project-level build-profile.json5 file.

hvigor ERROR: Failed :entry:default@GenerateLoaderJson… hvigor ERROR: BUILD FAILED in 3 s 66 ms

解决方法:
在上面那个文件products节点里增加

“buildOption”: { “strictMode”: { “caseSensitiveCheck”: true, “useNormalizedOHMUrl”: true } }

又遇到新问题了

hvigor ERROR: Failed :entry:default@SignHap… hvigor ERROR: BundleName in the project configuration does not match that in the SigningConfigs. Detail: Open the project-level build-profile.json5 file. Change the bundleName value to that in the SigningConfigs. Otherwise, go to the app.json5 file and change the bundleName value there.

上面问题只要保证所有模式都bundlename都一致即可。

14:24:47.910 安装鸿蒙工程的依赖 … 14:24:49.328 安装鸿蒙工程依赖成功 14:24:49.328 开始制作安装包 .app,请耐心等待 … 14:25:16.116 安装包制作失败

这下彻底无解了,连个失败的理由都没有

在将uni-app结合Vue 3开发的应用发布到鸿蒙(HarmonyOS)平台时,遇到打包失败的问题可能涉及多个方面,包括但不限于配置文件、依赖管理、平台特定代码等。下面我将提供一个基本的代码案例和检查步骤,帮助你定位和解决打包失败的问题。请注意,具体解决方案可能需要根据实际错误信息进行调整。

1. 检查manifest.json配置

首先确保manifest.json中针对鸿蒙平台的配置是正确的。以下是一个基本配置示例:

{
  "mp-huawei": { // 鸿蒙平台的配置标识
    "appid": "__UNI__XXXXXX", // 替换为你的鸿蒙应用ID
    "setting": {
      "requestDomain": [] // 根据需要添加域名白名单
    }
  }
}

2. 检查vue.config.jsuni.schematics.json

如果你使用了自定义的Vue配置或uni-app的schematics配置,确保它们没有引入与鸿蒙不兼容的插件或配置。

3. 条件编译

确保你的代码中使用了条件编译来处理鸿蒙平台的特定逻辑。例如:

<template>
  <view>
    <text v-if="$mp.system === 'huawei'">Hello HarmonyOS!</text>
    <text v-else>Hello Other Platforms!</text>
  </view>
</template>

4. 依赖管理

检查package.json中的依赖项,确保没有包含鸿蒙不支持的npm包。你可以尝试移除或替换这些包,然后重新打包。

5. 打包命令

使用正确的打包命令进行构建。通常,uni-app提供了CLI工具来简化这一过程:

npm run dev:mp-huawei # 开发模式
npm run build:mp-huawei # 生产模式

6. 查看日志

打包失败时,详细查看构建日志,寻找具体的错误信息。错误信息通常会指出是哪个文件或哪行代码出了问题。

7. 示例代码结构检查

确保你的项目结构符合uni-app的要求,特别是pages.jsonstatic文件夹等关键部分。

结论

由于打包失败可能由多种原因引起,上述步骤提供了一个基本的排查框架。如果问题依旧存在,建议查看uni-app官方文档或社区论坛,寻找是否有其他开发者遇到并解决了类似的问题。此外,确保你使用的uni-app和HBuilderX版本是最新的,因为新版本可能修复了旧版本中的bug。

回到顶部