news 2026/6/14 23:03:41

鸿蒙应用上传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙应用上传

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


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

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

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

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

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

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

目录

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

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

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

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

2. 去 AGC 申请证书 (.cer)

3. 去 AGC 生成 Profile (.p7b)

第三阶段:配置 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文件,你会发现这些配置都自动写进去了。


第四阶段:编译打包 (.appvs.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 上填写的一模一样。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:03:47

一文讲透索引数据结构——B-Tree / B+Tree / Hash 的特点及对比

B-Tree二叉树的缺点:B-Tree(多路 平衡查找树)BTree01-标准的BTree结构演变过程:分裂时中间元素向上分裂,同时该中间元素会停留在分裂后的右子树中,这样才能保证所有的数据会出现在叶子结点相对于B-Tree区别…

作者头像 李华
网站建设 2026/6/15 3:21:19

多模态模型实践 - 图文跨模态检索实战教程

目录 摘要 1 引言:多模态检索的时代价值与挑战 2 技术原理:跨模态检索的架构设计 2.1 核心架构设计理念 2.2 CLIP模型原理深度解析 2.3 多模态检索系统性能分析 3 实战部分:完整可运行代码示例 3.1 环境配置与依赖管理 3.2 数据预处…

作者头像 李华
网站建设 2026/6/15 18:24:32

基于Java+SSM的高校学生宿舍管理系统(源代码+文档+PPT+调试+讲解)

课题摘要基于 JavaSSM(SpringSpringMVCMyBatis)架构的高校学生宿舍管理系统,直击 “传统宿舍管理依赖人工记录、信息查询繁琐、资源调配低效、学生诉求响应慢” 的核心痛点,依托 Java 的稳定性与 SSM 框架的分层架构优势&#xff…

作者头像 李华
网站建设 2026/6/15 13:34:16

如何实现完全离线的AI文档生成:DeepWiki-Open本地部署终极指南

如何实现完全离线的AI文档生成:DeepWiki-Open本地部署终极指南 【免费下载链接】deepwiki-open Open Source DeepWiki: AI-Powered Wiki Generator for GitHub Repositories 项目地址: https://gitcode.com/gh_mirrors/de/deepwiki-open 你是否担心将公司代码…

作者头像 李华
网站建设 2026/6/14 18:27:43

AI助力开发:5分钟打造你的谷歌浏览器视频下载插件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个谷歌浏览器扩展程序,能够下载网页中的视频内容。主要功能包括:1)检测当前页面中的视频元素 2)提供下载按钮 3)支持多种视频格式下载 4)可设置下载质…

作者头像 李华
网站建设 2026/6/15 13:11:14

Macyy会员系统AI自动化开发实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Macyy会员管理系统,需要包含以下功能:1.会员注册/登录 2.积分累计与兑换 3.电子优惠券发放 4.购买历史记录 5.个性化推荐。后端使用Python Flask框架…

作者头像 李华