本篇讲解应用打包流程与华为应用市场上架全流程

应用打包与华为应用市场上架 教程结构图

图:应用打包与华为应用市场上架 的关键流程与实现要点。

学习目标

  • ✅ 掌握应用打包配置
  • ✅ 了解签名证书申请
  • ✅ 完成应用信息准备
  • ✅ 熟悉审核与上架流程

预计学习时间

约 90 分钟


实战一:应用打包配置

第一步:配置 build-profile.json5

在项目根目录的 build-profile.json5 中配置:

{
  "app": {
    "signingConfigs": [
      {
        "name": "default",
        "type": "HarmonyOS",
        "material": {
          "certpath": "签名证书路径/.cer",
          "storePassword": "密钥库密码",
          "keyAlias": "密钥别名",
          "keyPassword": "密钥密码",
          "profile": "Profile文件路径/.p7b",
          "signAlg": "SHA256withECDSA",
          "storeFile": "密钥库文件路径/.p12"
        }
      }
    ],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true
          }
        }
      }
    ],
    "buildModeSet": [
      {
        "name": "debug"
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": ["default"]
        }
      ]
    }
  ]
}

配置说明:<br />| 字段 | 说明 |<br />|------|------|<br />| signingConfigs | 签名配置,包含证书和密钥信息 |<br />| compatibleSdkVersion | 最低兼容 SDK 版本 |<br />| runtimeOS | 运行时系统,HarmonyOS |<br />| buildModeSet | 构建模式:debug/release |

第二步:配置 AppScope/app.json5

{
  "app": {
    "bundleName": "com.example.gujinzhijian",
    "vendor": "开发者名称",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "minAPIVersion": 12,
    "targetAPIVersion": 12,
    "apiReleaseType": "Release"
  }
}

版本号规范

  • versionCode: 整数,每次发布递增(如 1000000, 1000001)
  • versionName: 用户可见版本号(如 1.0.0, 1.0.1)

第三步:执行打包命令

# 构建 Release 版本 HAP 包
hvigorw assembleHap -p product=default -p buildMode=release --no-daemon

# 构建 APP 包(用于上架)
hvigorw assembleApp -p product=default -p buildMode=release --no-daemon

产物位置

  • HAP 包:entry/build/default/outputs/default/entry-default-signed.hap
  • APP 包:build/outputs/default/项目名-default-signed.app

实战二:签名证书申请

第一步:注册华为开发者账号

1. 访问 https://developer.huawei.com/" title="华为开发者联盟" title="https://developer.huawei.com/">华为开发者联盟">https://developer.huawei.com/">华为开发者联盟<br />2. 点击"注册",完成账号注册<br />3. 完成实名认证(个人/企业)

第二步:创建应用

1. 登录 https://developer.huawei.com/consumer/cn/service/josp/agc/index.html" title="AppGallery" title="https://developer.huawei.com/consumer/cn/service/josp/agc/index.html">AppGallery">https://developer.huawei.com/consumer/cn/service/josp/agc/index.html">AppGallery Connect<br />2. 点击"我的应用" → "添加应用"<br />3. 填写应用信息:

  • 应用名称
  • 应用分类
  • 默认语言

第三步:申请证书

1. 在 DevEco Studio 中:

  • 菜单 → Build → Generate Key and CSR
  • 生成密钥库文件(.p12)和证书请求文件(.csr)

2. 在 AppGallery Connect 中:

  • 用户与访问 → 证书管理
  • 上传 CSR 文件,下载证书(.cer)

3. 申请 Profile 文件:

  • 用户与访问 → Profile管理
  • 创建 Profile,关联证书和应用
  • 下载 Profile 文件(.p7b)

第四步:配置签名

将证书文件放入项目,更新 build-profile.json5

{
  "signingConfigs": [
    {
      "name": "default",
      "material": {
        "certpath": "./签名/release.cer",
        "storeFile": "./签名/release.p12",
        "profile": "./签名/release.p7b",
        "storePassword": "你的密码",
        "keyAlias": "你的别名",
        "keyPassword": "你的密码",
        "signAlg": "SHA256withECDSA"
      }
    }
  ]
}

实战三:应用信息准备

第一步:应用图标

规格要求

  • 尺寸:216×216 像素
  • 格式:PNG
  • 圆角:系统自动处理

设计建议

  • 主体图案居中
  • 避免过多细节
  • 确保在小尺寸下清晰可辨

第二步:应用截图

规格要求:<br />| 设备类型 | 尺寸 | 数量 |<br />|----------|------|------|<br />| 手机 | 1080×2340 或 2340×1080 | 3-8张 |<br />| 平板 | 2560×1600 或 1600×2560 | 3-8张 |<br />| 折叠屏 | 2480×2200 | 可选 |

截图建议

  • 展示核心功能
  • 包含深色和浅色模式
  • 避免敏感信息

第三步:应用描述

简介(80字以内)

古今职鉴 - 穿越千年的职场智慧。探索八朝官职体系,匹配古今职业,体验科举考试,感受传统文化魅力。

详细描述(4000字以内)

【应用简介】
古今职鉴是一款融合历史文化与现代职场的趣味应用,带你穿越千年,探索古代官场智慧。

【核心功能】
• 职官词典:收录秦、汉、魏晋、唐、宋、元、明、清八朝官职,详解职责与品级
• 古今匹配:输入现代职业,匹配对应的古代官职,发现跨越时空的职场共鸣
• 科举考试:模拟古代科举六级考试,从县试到殿试,体验金榜题名的喜悦
• 性格测试:古代官场适配测试与现代职业倾向测试,探索你的职场基因
• 新年习俗:八朝新年习俗大全,感受传统节日文化

【特色体验】
• 握姿祝福:左手握持显示"新年快乐",右手握持显示"财源滚滚"
• 隔空投送:隔空投递,将祝福卡片传递给身边的朋友
• 桌面卡片:年俗日历小组件,每日推送传统文化内容

【适用人群】
• 对中国历史文化感兴趣的用户
• 想了解古代官职体系的历史爱好者
• 寻找职场灵感的职场人士
• 喜欢趣味测试的年轻用户

第四步:隐私政策

必须提供隐私政策链接,内容包括:

  • 收集的用户信息类型
  • 信息使用目的
  • 信息存储与保护措施
  • 用户权利说明
  • 联系方式

实战四:权限说明

第一步:权限清单

module.json5 中声明的权限需要说明用途:

{
  "requestPermissions": [
    {
      "name": "ohos.permission.DETECT_GESTURE",
      "reason": "$string:permission_gesture_reason",
      "usedScene": {
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
  ]
}

第二步:权限使用说明

| 权限 | 用途说明 |<br />|------|----------|<br />| DETECT_GESTURE | 用于握姿祝福功能,检测用户握持手机的方式,显示不同的新年祝福 |<br />| INTERNET | 用于加载网络资源和地图数据 |<br />| NFC_TAG | 用于碰一碰分享官职名片功能 |

第三步:权限最小化原则

  • 只申请必要的权限
  • 在需要时才申请(运行时权限)
  • 提供清晰的权限说明

实战五:审核常见问题

问题一:色彩对比度不达标

问题描述:文字与背景色对比度不足 4.5:1

解决方案

// 错误示例
.fontColor('#6b7280')  // 对比度不足

// 正确示例
.fontColor(this.isDarkMode ? '#9ca3af' : '#64748b')  // 满足 4.5:1

问题二:权限申请说明不清晰

问题描述:用户不理解为什么需要某权限

解决方案

  • 在申请权限前显示说明弹窗
  • 使用通俗易懂的语言
  • 说明权限与功能的关系

问题三:功能描述与实际不符

问题描述:应用描述中的功能实际不存在

解决方案

  • 确保描述与实际功能一致
  • 截图展示真实界面
  • 避免夸大宣传

问题四:隐私合规问题

问题描述:未提供隐私政策或内容不完整

解决方案

  • 提供完整的隐私政策
  • 首次启动显示隐私协议
  • 提供用户数据删除入口

实战六:上架流程

第一步:提交应用

1. 登录 AppGallery Connect<br />2. 进入"我的应用" → 选择应用<br />3. 点击"版本信息" → "提交审核"<br />4. 上传 APP 包<br />5. 填写版本说明

第二步:审核阶段

| 阶段 | 时间 | 说明 |<br />|------|------|------|<br />| 初审 | 1-2天 | 自动化检测 |<br />| 复审 | 2-5天 | 人工审核 |<br />| 上架 | 审核通过后 | 自动上架或手动发布 |

第三步:审核结果处理

审核通过

  • 选择立即发布或定时发布
  • 发布后可在应用市场搜索到

审核驳回

  • 查看驳回原因
  • 修改问题后重新提交
  • 可申诉(如认为判定有误)

实战七:版本更新

第一步:更新版本号

// app.json5
{
  "app": {
    "versionCode": 1000001,  // 递增
    "versionName": "1.0.1"   // 更新
  }
}

第二步:编写更新说明

版本 1.0.1 更新内容:
1. 新增:桌面卡片支持 4×4 大尺寸
2. 优化:提升科举考试答题体验
3. 修复:修复部分设备握姿感应异常问题

第三步:提交更新

1. 构建新版本 APP 包<br />2. 在 AppGallery Connect 创建新版本<br />3. 上传 APP 包并提交审核


上架后运营

用户反馈处理

1. 定期查看应用市场评论<br />2. 及时回复用户问题<br />3. 收集功能建议

数据分析

1. 查看下载量、活跃用户数<br />2. 分析用户留存率<br />3. 关注崩溃率和性能指标

版本迭代规划

1. 根据用户反馈确定优先级<br />2. 制定版本发布计划<br />3. 持续优化用户体验


本课小结

| 阶段 | 关键步骤 |<br />|------|----------|<br />| 打包配置 | build-profile.json5 + 签名证书 |<br />| 信息准备 | 图标、截图、描述、隐私政策 |<br />| 权限说明 | 清晰说明每个权限的用途 |<br />| 提交审核 | 上传 APP 包 + 版本说明 |<br />| 上架运营 | 用户反馈 + 数据分析 + 版本迭代 |


上架检查清单

  • [ ] 应用图标符合规范(216×216 PNG)
  • [ ] 截图数量和尺寸符合要求
  • [ ] 应用描述完整准确
  • [ ] 隐私政策链接有效
  • [ ] 权限使用说明清晰
  • [ ] 色彩对比度符合 WCAG 标准
  • [ ] 签名证书配置正确
  • [ ] 版本号已更新
  • [ ] APP 包构建成功

恭喜完成教程!

经过 30 篇教程的学习,你已经掌握了:

1. 基础知识:ArkTS 语言、ArkUI 组件、声明式 UI<br />2. 状态管理:@State、@Link、@Provide/@Consume、AppStorage<br />3. 原生能力:握姿感应、隔空投送、NFC、桌面卡片<br />4. 进阶开发:Navigation 路由、WebView、农历计算<br />5. 完整案例:职官词典、古今匹配、科举考试、性格测试<br />6. 发布上架:打包配置、签名证书、审核流程

继续探索鸿蒙开发的更多可能,祝你开发顺利!🎉


项目开源地址

https://gitcode.com/daleishen/gujinzhijian

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐