开发完 App 只是第一步,签名(Signing)和上架(Release)才是让你的应用从“作坊产品”变成“正规商品”的关键步骤。对于新手来说,HarmonyOS 的签名证书体系可能会有点绕,我用最通俗的“身份证 + 通行证”**的比喻来带你走一遍流程。
核心概念:这堆文件都是干嘛的?
在开始操作前,先认清这几个文件后缀,不然一会就晕了:
.p12(密钥库文件):相当于你的私章。只有你自己有,用来证明“这代码确实是我写的”。千万别把密码忘了!.csr(证书请求文件):相当于申请表。你拿着它去找华为申请证书。.cer(证书):相当于身份证。华为盖章认证的,证明你的身份是合法的开发者。.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)。
注册/登录:确保你已经实名认证了开发者账号。
创建项目与应用:
进入“我的应用” -> “新建”。
填写应用名称、包名(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)
菜单栏点击Build->Generate Key and CSR。
Key Store File: 选择
New,创建一个新的.p12文件(建议存在项目根目录的sign文件夹下)。Alias: 给密钥起个别名(如
release_key),再设一个密码。点击 Next,生成
.csr文件,保存好。
2. 去 AGC 申请证书 (.cer)
回到 AGC 控制台。
点击证书、APP ID和Profile-> 左侧证书。
点击新增证书-> 上传刚才生成的
.csr文件。提交后,下载生成的
.cer发布证书。
3. 去 AGC 生成 Profile (.p7b)
继续在这个页面,先创建APP ID。
再点击下面的Profile,生成
.p7b文件。类型:选择“发布”(Release)。注意:千万别选成调试(Debug)。
选择证书:选刚才那个
.cer。提交后,下载生成的
.p7b文件。
第三阶段:配置 DevEco Studio
现在你手里有4个东西:.p12(密钥), 密码,.cer(证书),.p7b(通行证)。我们把它们装进项目里。
打开 DevEco Studio,点击File->Project Structure。
点击Project->Signing Configs。
取消勾选
Automatically generate signature。填空题:
Store File: 选择你的
.p12文件。Store Password: 输入密码。
Key Alias: 输入别名。
Key Password: 输入别名密码。
Sign Alg: 默认
SHA256withECDSA即可。Profile File: 选择下载的
.p7b文件。Certpath File: 选择下载的
.cer文件。
点击OK。
小技巧:配置完成后,去看看项目里的
build-profile.json5文件,你会发现这些配置都自动写进去了。
第四阶段:编译打包 (.appvs.hap)
千万不要直接把手机里提取的 hap 传上去!商店只认.app。
检查配置:打开
build-profile.json5文件,确认signingConfigs下面配置正确,且buildOption里的release模式引用了正确的签名配置。执行编译:
菜单栏:Build->Build Hap(s)/APP(s)->Build APP(s)。
(注意:如果是第一次,它可能会让你选 Build Mode,一定要选release)。
等待完成:
编译成功后,右下角会有提示。
点击提示里的链接,或者去文件夹找:
项目根目录/build/outputs/default/app/release/。你会看到一个
AppName-default-release.app文件。这就是最终成品!
第五步:上传与填写信息
(最后一步,在 AGC 网页)
创建版本:
AGC ->我的应用-> 点击应用名 ->分发->应用上架。
点击右上角新建版本。
上传软件包:
在“软件版本”处,点击管理软件包->上传。
把刚才那个
.app文件拖进去。如果签名配置错误或包名不一致,这里会直接报错。
填写元数据(最耗时):
应用图标:512x512 png,不能有圆角(系统会自动裁圆角),要是正方形满铺。
应用截图:至少3张。大坑预警:截图里不能出现 Android 机器人、iOS 风格的状态栏,最好用华为手机截图,或者把状态栏P掉。
应用介绍:稍微润色一下,“这是一款基于 GitCode API 开发的高效管理工具...”。
隐私声明 URL:这是必须要有的。
如果没有网站:用飞书/Notion/腾讯文档写一份,开启“互联网公开访问”,把链接填进去。
内容要求:必须明确写出“本应用会收集用户的 IP 地址/设备信息用于...”。
分发国家/版权:
选“中国大陆”。
电子版权证书:如果你没有软著(软件著作权),现在华为允许个人开发者上传“免责函”或“承诺书”(具体看上传页面的最新提示),或者上传身份证正反面(部分类目)。
提交审核:
点击提交。通常审核时间为 1-3 个工作日。
避坑指南 (常见被拒理由)
版本号管理:下次更新 App 时,记得在
AppScope/app.json5里把versionCode加 1(比如从 10001 变成 10002),否则上传会失败,提示“版本号未增加”。隐私弹窗逻辑:
审核员打开 App 的第一眼,必须看到《隐私政策》弹窗。
只有用户点击“同意”后,你的代码才能执行
uni.request或其他 API 调用。如果一启动就请求 GitCode 接口,会被判定为“违规收集个人信息”,直接拒审。
权限申请:不要申请不必要的权限(比如一个计算器申请读取通讯录)。申请权限时要有明确的文案说明用途。
空内容:如果你的 GitCode 页面还没数据,导致 App 进去一片白,会被判为“功能不完善”。记得做个“缺省页”或者放点假数据。
图标/名称不符:安装到手机上的 App 名称和图标,必须和你在 AGC 上填写的一模一样。
欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。