鸿蒙应用上传

开发完 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 上填写的一模一样。

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

相关推荐
Geek_Vison13 小时前
保险APP已经用了Flutter,还能接入小程序吗?
flutter·小程序·uni-app·mpaas·小程序容器
yumgpkpm14 小时前
(CDH 7)CDP Private Cloud Base 7.3.1 → Acceldata ODP 3.3.6.4 引擎迁移风险评估表
服务器·人工智能·hadoop·python·华为·zookeeper·hbase
m0_7381858214 小时前
Flutter 鸿蒙化实战:screen_protector 适配 OpenHarmony,防截屏/防泄露
flutter·华为·harmonyos·鸿蒙
xixixi7777714 小时前
解读|华为星河 AI 三层安全围栏:以 AI 守护 AI,重构智算中心 Token 生产纵深防御体系
人工智能·安全·web安全·华为·提示词注入·agent安全·模型投毒
计算机毕设定制辅导-无忧学长15 小时前
《校园食堂在线订餐小程序的设计与实现》
java·vue.js·spring boot·微信小程序·uniapp·校园食堂在线订餐小程序
咖啡无伴侣16 小时前
1. 别再手动改代码格式了!Vue3 项目工程化规范搭建实战
vue.js·架构
知野小兔19 小时前
Vuex和Pinia状态管理
vue.js
yumgpkpm20 小时前
Acceldata ODP 3.3.6.4 vs CDP Private Cloud Base 7.3.2 对比
大数据·运维·服务器·hadoop·华为·zookeeper·hbase
VX_bysjlw98520 小时前
数码设备销售网站设计与实现39138-计算机毕设原创(免费领源码+带部署教程)
java·vue.js·spring boot·mysql·tomcat·mybatis·idea
老陈说编程1 天前
2. 鸿蒙(HarmonyOS)超级终端与生态
华为·harmonyos