鸿蒙应用上传

开发完 App 只是第一步,签名(Signing) 和**上架(Release)**才是让你的应用从"作坊产品"变成"正规商品"的关键步骤。对于新手来说,HarmonyOS 的签名证书体系可能会有点绕,我用最通俗的"身份证 + 通行证"**的比喻来带你走一遍流程。


核心概念:这堆文件都是干嘛的?

在开始操作前,先认清这几个文件后缀,不然一会就晕了:

  1. .p12 (密钥库文件) :相当于你的私章 。只有你自己有,用来证明"这代码确实是我写的"。千万别把密码忘了!

  2. .csr (证书请求文件) :相当于申请表。你拿着它去找华为申请证书。

  3. .cer (证书) :相当于身份证。华为盖章认证的,证明你的身份是合法的开发者。

  4. .p7b (Profile 配置文件) :相当于通行证 。它把你的身份证 (.cer)、App ID(包名)绑定在一起,允许你的 App 在华为手机上运行。

目录

核心概念:这堆文件都是干嘛的?

第一阶段:准备工作 (AppGallery Connect)

第二阶段:生成签名文件 (最关键的一步)

[1. 在 DevEco Studio 生成密钥 (.p12) 和请求文件 (.csr)](#1. 在 DevEco Studio 生成密钥 (.p12) 和请求文件 (.csr))

[2. 去 AGC 申请证书 (.cer)](#2. 去 AGC 申请证书 (.cer))

[3. 去 AGC 生成 Profile (.p7b)](#3. 去 AGC 生成 Profile (.p7b))

[第三阶段:配置 DevEco Studio](#第三阶段:配置 DevEco Studio)

第四阶段:编译打包 (.app vs .hap)

第五步:上传与填写信息

避坑指南 (常见被拒理由)


第一阶段:准备工作 (AppGallery Connect)

一切的起点是华为的开发者后台:AppGallery Connect (AGC)

  1. 注册/登录:确保你已经实名认证了开发者账号。

  2. 创建项目与应用

    • 进入"我的应用" -> "新建"。

    • 填写应用名称、包名(Package Name,必须和 DevEco Studio 里 bundleName 一致,例如 com.yourname.gitcodeapp)。

    • 注意:包名一旦定下,终身不能改。


第二阶段:生成签名文件 (最关键的一步)

这里分为调试签名(Debug)发布签名(Release)

  • 调试签名 :为了自己在真机上测试。DevEco Studio 提供了自动签名 功能(File -> Project Structure -> Project -> Signing Configs -> 勾选 Automatically generate signature),连上手机点一下就行,非常方便。

  • 发布签名 :为了上传应用市场。必须手动申请! 以下是发布签名的流程:

1. 在 DevEco Studio 生成密钥 (.p12) 和请求文件 (.csr)
  1. 菜单栏点击 Build -> Generate Key and CSR

  2. Key Store File : 选择 New,创建一个新的 .p12 文件(建议存在项目根目录的 sign 文件夹下)。

  3. Alias : 给密钥起个别名(如 release_key),再设一个密码。

  4. 点击 Next,生成 .csr 文件,保存好。

2. 去 AGC 申请证书 (.cer)
  1. 回到 AGC 控制台

  2. 点击 证书、APP ID和Profile -> 左侧 证书

  3. 点击 新增证书 -> 上传刚才生成的 .csr 文件。

  4. 提交后,下载生成的 .cer 发布证书

3. 去 AGC 生成 Profile (.p7b)
  1. 继续在这个页面,先创建APP ID。

  2. 再点击下面的Profile,生成 .p7b 文件

  3. 类型 :选择 "发布" (Release)。注意:千万别选成调试(Debug)。

  4. 选择证书 :选刚才那个 .cer

  5. 提交后,下载生成的 .p7b 文件


第三阶段:配置 DevEco Studio

现在你手里有4个东西:.p12 (密钥), 密码, .cer (证书), .p7b (通行证)。我们把它们装进项目里。

  1. 打开 DevEco Studio,点击 File -> Project Structure

  2. 点击 Project -> Signing Configs

  3. 取消勾选 Automatically generate signature

  4. 填空题

    • Store File : 选择你的 .p12 文件。

    • Store Password: 输入密码。

    • Key Alias: 输入别名。

    • Key Password: 输入别名密码。

    • Sign Alg : 默认 SHA256withECDSA 即可。

    • Profile File : 选择下载的 .p7b 文件。

    • Certpath File : 选择下载的 .cer 文件。

  5. 点击 OK

小技巧 :配置完成后,去看看项目里的 build-profile.json5 文件,你会发现这些配置都自动写进去了。


第四阶段:编译打包 (.app vs .hap)

千万不要直接把手机里提取的 hap 传上去! 商店只认 .app

  1. 检查配置 :打开 build-profile.json5 文件,确认 signingConfigs 下面配置正确,且 buildOption 里的 release 模式引用了正确的签名配置。

  2. 执行编译

    • 菜单栏:Build -> Build Hap(s)/APP(s) -> Build APP(s)

    • (注意:如果是第一次,它可能会让你选 Build Mode,一定要选 release )。

  3. 等待完成

    • 编译成功后,右下角会有提示。

    • 点击提示里的链接,或者去文件夹找:项目根目录/build/outputs/default/app/release/

    • 你会看到一个 AppName-default-release.app 文件。这就是最终成品!


第五步:上传与填写信息

(最后一步,在 AGC 网页)

  1. 创建版本

    1. AGC -> 我的应用 -> 点击应用名 -> 分发 -> 应用上架

    2. 点击右上角 新建版本

  2. 上传软件包

    • 在"软件版本"处,点击 管理软件包 -> 上传

    • 把刚才那个 .app 文件拖进去。如果签名配置错误或包名不一致,这里会直接报错。

  3. 填写元数据(最耗时)

    • 应用图标:512x512 png,不能有圆角(系统会自动裁圆角),要是正方形满铺。

    • 应用截图 :至少3张。大坑预警:截图里不能出现 Android 机器人、iOS 风格的状态栏,最好用华为手机截图,或者把状态栏P掉。

    • 应用介绍:稍微润色一下,"这是一款基于 GitCode API 开发的高效管理工具..."。

    • 隐私声明 URL:这是必须要有的。

      • 如果没有网站:用飞书/Notion/腾讯文档写一份,开启"互联网公开访问",把链接填进去。

      • 内容要求:必须明确写出"本应用会收集用户的 IP 地址/设备信息用于..."。

  4. 分发国家/版权

    • 选"中国大陆"。

    • 电子版权证书:如果你没有软著(软件著作权),现在华为允许个人开发者上传"免责函"或"承诺书"(具体看上传页面的最新提示),或者上传身份证正反面(部分类目)。

  5. 提交审核

    • 点击提交。通常审核时间为 1-3 个工作日。

避坑指南 (常见被拒理由)

  1. 版本号管理 :下次更新 App 时,记得在 AppScope/app.json5 里把 versionCode 加 1(比如从 10001 变成 10002),否则上传会失败,提示"版本号未增加"。

  2. 隐私弹窗逻辑

    • 审核员打开 App 的第一眼,必须看到《隐私政策》弹窗。

    • 只有用户点击"同意"后,你的代码才能执行 uni.request 或其他 API 调用。

    • 如果一启动就请求 GitCode 接口,会被判定为"违规收集个人信息",直接拒审。

  3. 权限申请:不要申请不必要的权限(比如一个计算器申请读取通讯录)。申请权限时要有明确的文案说明用途。

  4. 空内容:如果你的 GitCode 页面还没数据,导致 App 进去一片白,会被判为"功能不完善"。记得做个"缺省页"或者放点假数据。

  5. 图标/名称不符:安装到手机上的 App 名称和图标,必须和你在 AGC 上填写的一模一样。

欢迎大家加入**开源鸿蒙跨平台开发者社区**,一起共建开源鸿蒙跨平台生态。

相关推荐
鸿蒙开发工程师—阿辉2 小时前
HarmonyOS 5 极致动效实验室:给 UI 注入“物理动效”
ui·华为·harmonyos
请叫我欧皇i2 小时前
免费开源!Vue2 + OpenStreetMap 打造动态地图:标记点与弹窗高级定制
前端·vue.js·开源
大雨倾城2 小时前
网页端和桌面端的electron通信Webview
javascript·vue.js·react.js·electron
鸿蒙开发工程师—阿辉2 小时前
HarmonyOS 5 极致动效实验室:粒子动画与高性能特效
华为·harmonyos
yilan_n2 小时前
【UniApp实战】手撸面包屑导航与路由管理 (拒绝页面闪烁)
前端·javascript·vue.js·uni-app·gitcode
yuegu7772 小时前
Electron for鸿蒙PC实战项目之俄罗斯方块游戏
华为·electron·harmonyos
FrameNotWork2 小时前
HarmonyOS 应用性能优化全指南:渲染、状态管理、线程、内存、网络一站式提升
华为·性能优化·harmonyos
Highcharts.js2 小时前
官方文档|Vue 集成 Highcharts Dashboards
前端·javascript·vue.js·技术文档·highcharts·看板·dashboards
晚霞的不甘2 小时前
Flutter + OpenHarmony 插件开发指南:深度集成原生能力,打造高性能鸿蒙扩展
flutter·华为·harmonyos