鸿蒙 PC Electron 又添一员实战大将——读《厨房里的化学》上架记的几点收获

欢迎加入开源鸿蒙 PC 社区:https://harmonypc.csdn.net/

写在前面

最近在 CSDN 上读到一篇让我眼前一亮的文章:

《厨房里的化学生态用鸿蒙 PC 的 Electron 框架实现——上架操作全流程》
作者:红目香薰(CSDN)
链接:https://blog.csdn.net/feng8403000/article/details/161547810

读完之后我做了一件事——立刻去华为应用市场搜了一下"厨房里的化学",结果是真的能搜到、能下载、能装上。然后我又把链接、源码仓库、AGC 上架流程对照了一遍,越读越觉得这事值得专门写一篇文章推荐。
在这里插入图片描述

所以这篇博文我想做两件事:

  1. 认真推荐这位老哥的工作——理由后面展开
  2. 借这次机会,把我自己 IronLog 上架时积累的经验也整理出来,跟他的文章合在一起读,能给后来者一份更完整的上架地图

不是单纯转发,是把一份已经在跑的事做成对社区更长期有用的产出。


一、为什么这位老哥的工作值得推荐

1. 应用真的上架了,这件事本身就稀缺

去华为应用市场搜"厨房里的化学",能搜到、能下载、能装上。bundleName 是 com.chufang.electron_pro,应用市场链接:

https://appgallery.huawei.com/app/detail?id=com.chufang.electron_pro

听起来好像是一件平淡的事——一个应用上架。但你把范围限制到"鸿蒙 PC + Electron 框架",这个清单至今还很短

我自己做了 11 个适配项目(10 个 Qt + 1 个 Electron Demo),公开上架的只有 1 个(IronLog)。社区里反复推荐的 KeeWeb 适配那篇也很有价值,但 KeeWeb 实际上没有上架华为应用市场,只是"跑通在自己设备上"。

跑通 ≠ 上架
跑通是技术问题;上架还要再过:签名、隐私协议、应用描述、5 张截图、审核打回再修、再提交。
这中间至少要再扔出 1-2 天时间,且每一步都有"卡审"风险。

所以每一个真的进了应用市场、能被普通用户搜到下载的 Electron 应用,对社区来说都是一个证据点:这条路是通的。红目香薰老师把这件事做到了——光这一点就值得点赞。

2. 选题选得真好

“厨房里的化学”——把美拉德反应、酶促褐变、乳化、酯化、酸碱反应这些化学概念,做成可视化、可互动的虚拟实验室。面向中学生和化学爱好者。
在这里插入图片描述

这个选题至少有 4 个优点:

优点 体现
不撞已有市场 鸿蒙应用市场里同类几乎没有
教育属性强 审核相对友好、有正向社会价值
离线即可使用 不涉及隐私/数据合规复杂度
纯前端能撑 HTML5 + CSS3 + JS + localStorage,符合 Electron 鸿蒙适配的"轻量友好"路径

这才是适合 Electron 适配的选题模板——单机、轻量、内容驱动、无后端、无 native 依赖。

后面我会专门展开讲,为什么选题这件事比技术更重要。这位老哥在选题这一步就赢了一半

3. 文章给出了关键的"避坑信号"

仔细读他的文章,我提炼到 3 个非常有价值的实战信号——都是只有真做过上架的人才知道的细节:

信号一:「存储路径不要有中文」

这条铁律。签名/Profile 配置时如果路径带中文,DevEco 内部的 hap-sign-tool(Java 实现)会有解析问题。听过的人省 2 小时,没听过的人卡 2 小时——红目香薰在文章里明确点出来了。

信号二:「审核指南第 3.5 项是高频打回原因」

他在文章里提到:

这种问题特别正常,经常会出现,只需要慢慢的深挖项目即可,完善功能后重新上传。

并附了官方文档链接:developer.huawei.com/consumer/cn/doc/app/50104-03

这条信号特别珍贵——很多教程教你怎么"提交",但没人告诉你"被打回怎么办"他用一句"特别正常"安抚了所有第一次上架时被打回会慌的开发者

信号三:「本地应用无需备案」

这句话看似简单,但对没上架过的人来说就是一个心理炸弹的拆除。我做 IronLog 上架前,光"是不是要备案"这个问题就纠结了半天,最后查到不需要——红目香薰在文章里直接点出来,省了后来者很多焦虑。

4. 配套了完整的应用介绍文案模板

他文章里还附了一份长达 600 字的应用介绍文案模板——讲应用概述、核心功能、技术特点、使用场景、目标用户的结构都齐全。

应用描述这件事对程序员来说是最反技能的环节——你能写 1000 行代码但写不出 100 字让用户看了想下载的描述。有他这份模板可以照着改,至少能省 1-2 小时的"对着空白文本框发呆"。

5. 持续输出能放大单次工作的价值

红目香薰老师的 CSDN 主页履历:

  • 码龄 9 年
  • 原创 2690 篇
  • 粉丝 6 万+
  • 鸿蒙 PC 专栏 61 篇

61 篇是什么概念?平均一周一篇。社区里大部分人最多写 5-10 篇就停了。

持续输出 > 单篇质量。这是社区运营的铁律。这位老哥把这件事做到了——他不是"做一次就跑"的过客,是真的在鸿蒙 PC 社区里持续耕耘的开发者,是值得长期关注的社区力量。


在这里插入图片描述

二、跟着这位老哥的脚步走——上架经验补完

读完文章后我做了件事——把他文章里给出的"操作路径"+ 我自己 IronLog 上架时的"踩坑笔记"合并起来,整理成一份两人经验合并版的上架地图,分享给后续要做这件事的朋友。

下面这套流程,是红目香薰老师的文章脉络 + 我自己实战补充的细节,两位实战开发者的经验合在一起

阶段 1:选题决定 80% 难度(30 分钟思考)

很多人跳过这步直接干。但选题决定了你后面 80% 的难度。

鸿蒙 PC Electron 上架友好选题清单

友好程度 选题类型 例子
⭐⭐⭐⭐⭐ 单机科普 / 教育 厨房里的化学 ←、化学元素周期表、天文常识
⭐⭐⭐⭐⭐ 工具计算(无网) 单位换算、几何作图、数独
⭐⭐⭐⭐ 单机笔记 / 备忘 番茄钟、便签、todo
⭐⭐⭐ 简单游戏 扫雷、2048、五子棋
⭐⭐ 网络应用 RSS 阅读、API 调试
涉及隐私 通讯录、日历同步
涉及录屏 / 系统级权限 远程桌面、剪贴板增强
涉及音视频解码(需要 spawn) 视频剪辑、字幕制作

红目香薰老师的选题就在最友好那一档——这不是巧合,是聪明。

阶段 2:跑通基础 Demo(1-2 天)

这块我之前的文章已经写过了,参见仓库:

简而言之三步:

  1. 下载新版 libelectron(双模块包,含 electron 主模块 + web_engine HSP)

  2. 把 web 应用(main.js / preload.js / index.html / package.json)放到:

    web_engine/src/main/resources/resfile/resources/app/
    
  3. 改三处:签名清空让 DevEco 自动签 / bundleName 改成自己的 / 应用名改可识别

跑通后能看到窗口,能加载页面,才进入"上架准备"

阶段 3:bundleName 命名(5 分钟,但容易错)

这块红目香薰老师给的样例是 com.chufang.electron_pro——是一个很好的命名范本:主域 + 产品名 + 后缀结构清晰。

bundleName 命名规则(从他的 com.chufang.electron_pro + 我 IronLog com.ironlog.assist 综合):

格式:com.<公司或个人域>.<产品名>[_后缀]

✅ com.chufang.electron_pro           # 红目香薰老师的
✅ com.ironlog.assist                  # 我的
✅ com.xxx.markdown                    # 通用
❌ com.example.demo                    # example 域不允许上架
❌ com.huawei.xxx                      # huawei 命名空间不允许
❌ com.demo.test                       # 一看就是没改
❌ com.user.app                        # user 命名空间不允许

关键提醒:bundleName 一旦上架,后续版本必须保持不变。第一次取名要慎重——别用 demo / test / user / example / huawei 这些保留命名空间。

阶段 4:签名配置(30 分钟 - 2 小时)

红目香薰老师把这一段拆成了 8 个清晰步骤,我把每步实际操作展开说一下,给视觉学习型读者一份手把手版本——

4.1 登录 AGC 拿 Profile

https://developer.huawei.com/consumer/cn/service/josp/agc/
  • 用华为开发者账号登录(个人或企业都行,个人就够)
  • 进入 AppGallery Connect → 我的项目 → 新建项目
  • 项目名随便取,包名要和 bundleName 一致

4.2 生成 .csr(证书签名请求文件)

两个方法:

# 方法 A:用 DevEco 的 Build → Generate Key and CSR
# (推荐,零门槛,自动放对路径)

# 方法 B:用 keytool 手动
keytool -genkeypair -alias ohos -keyalg RSA -keysize 2048 \
    -validity 9125 -keystore mykey.p12 -storetype pkcs12
keytool -certreq -alias ohos -keystore mykey.p12 -file mykey.csr

4.3 在 AGC 用 .csr 换证书

AGC → 我的项目 → API 管理 → HarmonyOS 应用 → 证书管理 → 新增证书 → 上传 csr → 下载 .cer

4.4 在 AGC 新建 Profile

AGC → HarmonyOS 应用 → Profile 管理 → 新增 Profile → 选刚才的 .cer → 下载 .p7b

4.5 把 4 个文件全部拖到 DevEco

mykey.p12      # 私钥
mykey.csr      # 签名请求(可丢)
应用名.cer     # 证书
应用名.p7b     # Profile

关键铁律(红目香薰老师明确点出的)

存储路径不要有中文

原因:DevEco 内部的 hap-sign-tool(Java 实现)对中文路径有解析问题。把所有签名文件放到一个纯英文路径,比如:

/Users/dev/ohos-sign/com.chufang.electron_pro/

而不是:

/Users/dev/桌面/鸿蒙签名/

4.6 在 build-profile.json5 配 signingConfigs

{
  "name": "default",
  "type": "HarmonyOS",
  "material": {
    "certpath": "/abs/path/to/应用名.cer",
    "keyAlias": "ohos",
    "keyPassword": "*****",
    "profile": "/abs/path/to/应用名.p7b",
    "signAlg": "SHA256withECDSA",
    "storeFile": "/abs/path/to/mykey.p12",
    "storePassword": "*****"
  }
}

签名其实不难,但第一次做的人 90% 卡在这里——因为这 4 个文件的对应关系如果没人手把手讲就容易乱。红目香薰老师的步骤清单 + 我的细节展开,合在一起就是一份完整的签名教程

阶段 5:HAP 打 Release 包

DevEco → Build → Build Hap(s)/APP(s) → Build APP(s)

注意是 Build APP(s)(双 P,输出 .app)不是 Build Hap(s)(输出 .hap)。AGC 上架要的是 .app

输出位置:

build/outputs/default/
  └─ com.chufang.electron_pro-default.app

阶段 6:上传 AGC + 填资料(1-3 小时)

红目香薰老师这部分流程写得清楚,我就不重复了,补几个他文章可能因为篇幅没展开的小贴士

资料项 贴士
应用图标 1024×1024 PNG,无透明背景,圆角不要自己加(系统会加)
应用截图 必须 5 张,分辨率 ≥ 1920×1080,横屏截图(鸿蒙 PC 是横屏设备)
应用介绍 推荐 200-500 字。红目香薰老师的文章里就有一份现成模板可以照着改——这是非常宝贵的资源
隐私说明 必须填——即使你的应用完全不联网,也要写一句"本应用不收集用户数据"
备案 本地应用不需要备案(红目香薰老师明确点出,这条直接拆除心理炸弹)

阶段 7:审核 + 应对打回

红目香薰老师在这一节点了"第 3.5 项问题"的名,他说"特别正常,经常会出现"——这句话很关键。我顺着这条线,把我自己 IronLog 上架时第一次被打回的真实案例补一下,给后来者一个更具体的参照。

鸿蒙应用市场审核指南第 3.5 项原文(链接:developer.huawei.com/consumer/cn/doc/app/50104-03):

3.5 应用应该具备完整的功能,不应出现功能未完成、占位符、demo 字样、点击无反应等情况。

这条是 Electron 适配最容易栽的地方。为什么?因为:

  • ⚠️ 你的应用可能"在 Mac/Win 上跑得好好的功能",到鸿蒙上某个按钮不响应了——你自己测试覆盖不到
  • ⚠️ 鸿蒙 Electron 不支持某些 Web API(getUserMedia、Notification、剪贴板)——按钮点了没反应
  • ⚠️ 你的应用有 TODO 占位文字——审核会逐字看,连"待开发"都会被标记

我 IronLog 上架第一次被打回的真实原因

一个"导出 PDF"按钮点了没反应。
因为 IronLog 在鸿蒙 PC 上没接上 PDF 库,但按钮没禁用。
审核员点了一次没反应,按 3.5 项打回。

对策(按重要性排序)

  1. 真机自测每一个按钮——你的 Mac/Win 版别和鸿蒙版是同步开发的,真机一定要重新过一遍
  2. 禁用所有未完成功能的按钮——disabled + tooltip "鸿蒙 PC 暂不支持",比"点了报错"友好得多
  3. 去掉所有 TODO / 待开发 / coming soon 字样——即使在不显眼的角落
  4. 检查 Web API 兼容——参考 Electron 适配 FAQ 第 17 条

被打回不要慌——就像红目香薰老师说的,“特别正常,经常会出现”。改完重新提交,平均 1-3 天会再过一轮。我 IronLog 一共打回了 3 次,第 4 次过。


三、这件事让我想明白的几件事

读完这篇文章+复盘自己的 IronLog 上架经历,我有几个新的体会——

启发 1:选题就该是"轻"的

“厨房里的化学”——选题轻、功能边界清晰、纯前端能撑。

我做 IronLog 的时候,业务功能塞了太多(导出、配置、自定义模板……),结果在鸿蒙 PC 上每个功能都要重测,被打回 3 次。

如果让我重做一次,我会先做一个 30% 功能版上架。先过审拿到"已上架"标签,再用版本迭代慢慢补功能。红目香薰老师"先做一个完整闭环再上架"的思路,比我当时"什么功能都不想砍"要聪明

启发 2:上架是流程活,不全是技术活

技术上把 Demo 跑通,只占整个上架工作量的 30%。剩下 70% 是:

  • 签名文件准备(30 分钟看着像 30 秒,真做要 2 小时)
  • 5 张截图制作(每张做"看起来不水"花的时间比你想的多)
  • 应用描述文案打磨(要让用户在应用市场刷过去时停下来)
  • 隐私协议 / 服务条款撰写
  • 审核打回应对(这是个心理战,得能接受被打回 3-5 次

很多技术人卡在"上架"上,不是技术不行,是不愿意做这些"非技术"的事。红目香薰老师从头到尾走完了——这种"把流程跑通"的耐心,本身就是稀缺品质。

启发 3:每一篇上架记录都是社区的资产

国内做鸿蒙 PC 适配的开发者还很少。我做了 11 个项目、写了 50 多篇博文——这个量在社区里已经算"多产"了。但每次去看华为应用市场,真的能找到鸿蒙 PC 版的应用还是寥寥

每多一个真上架的应用 + 一篇上架记录,对社区来说都是一份"路是通的"的证据。

红目香薰老师做了这件事,并且写下来了——他的文章和他的应用,本身就是社区的资产。


四、如果你看完想去做,几条建议

按重要性排:

1. 先去他的 AtomGit 仓库读源码

https://atomgit.com/Math_teacher_fan/chufanglidehuaxue

对照着读文章 + 仓库源码,能学到的远比单看文章多——文章是骨架,仓库是血肉。我做 IronLog 之前也是这样学习别人项目的——好开发者都会顺手 clone 别人的成功案例

2. 选一个轻量级、教育/工具/科普类选题

不要做:

  • ❌ 视频剪辑(涉及子进程、ffmpeg)
  • ❌ 截图录屏(涉及系统权限)
  • ❌ 通讯录 / 日历(涉及隐私合规)
  • ❌ 远程控制 / 协作工具(涉及网络 + 权限)

做:

  • ✅ 化学 / 物理 / 数学 / 天文 / 历史 科普(厨房里的化学就是教科书级别样例
  • ✅ 单机 todo / 番茄钟 / 笔记
  • ✅ 单机计算器 / 单位换算 / 几何作图
  • ✅ 简单单机游戏(扫雷 / 数独 / 2048)

3. 把上架当成一个完整项目做,不要边做边想

预留时间表:

阶段 时间
Demo 跑通 1-2 天
业务功能开发 3-7 天
鸿蒙真机适配 + UI 调整 2-3 天
签名配置 + AGC 资料 1 天
应用描述 / 5 张截图 1 天
第一次提交 + 等审核 2-3 天
应对打回 × N 轮 3-7 天
总计 2-3 周

不要骗自己"周末就能搞定"。就像红目香薰老师那样——把整个过程认真走完一遍

4. 关注红目香薰老师的鸿蒙 PC 专栏

他的鸿蒙 PC 专栏已经有 61 篇了。"厨房里的化学"只是其中一篇。如果你想深入做鸿蒙 PC 开发,这个专栏是值得长期跟读的高质量信息源

CSDN 主页:https://blog.csdn.net/feng8403000
鸿蒙 PC 专栏:CSDN 主页 → 专栏 → 鸿蒙 PC


五、给社区的话

国内做鸿蒙 PC 适配的开发者还很少。每多一个真上架的应用,对社区来说都是一份"路是通的"的证据。

红目香薰老师做了这件事——技术上跑通、流程上过审、上架到应用市场,而且认真写下来了。这件事本身就值得推荐、值得记录、值得被更多后来者看到。

希望未来这样的"上架记录"越来越多。每一篇都是给下一位开发者点的一盏灯。

如果你也在做类似的事,别等到完美了再动手。先做一个 30% 功能的版本上架。后面慢慢迭代。

一句话总结:红目香薰老师不仅做出来了,还认真写下来了——这两件事任意做到一件已经不容易,他都做到了。


附录 A:相关文章导航

外部参考

来源 内容
红目香薰老师原文(CSDN) 厨房里的化学生态用鸿蒙 PC 的 Electron 框架实现——上架操作全流程
应用市场入口 厨房里的化学(应用商店)
项目源码(AtomGit) atomgit.com/Math_teacher_fan/chufanglidehuaxue
审核指南第 3.5 项 developer.huawei.com/consumer/cn/doc/app/50104-03
鸿蒙 PC 社区 harmonypc.csdn.net
红目香薰老师 CSDN 主页 blog.csdn.net/feng8403000

附录 B:上架检查清单(可打印)

打印贴在显示器侧面,每提交一次审核前过一遍。这一份清单是红目香薰老师文章 + 我 IronLog 上架经验整合出来的:

□ bundleName 不含 example / huawei / demo / test / user
□ 应用名不含"测试""Demo""试用"字样
□ 签名文件路径全英文(红目香薰老师铁律)
□ build-profile.json5 的 signingConfigs 路径都是绝对路径
□ build 输出的是 .app 不是 .hap
□ AGC 项目名和 bundleName 完全一致

□ 真机自测每一个按钮(不是 Mac/Win 版!是鸿蒙 PC 版!)
□ 所有未完成功能的按钮已 disabled
□ 全工程搜过 "TODO" / "待开发" / "敬请期待" / "coming soon"
□ 应用描述不出现"基于 Electron""移植自"等技术词
□ 隐私说明已填写(哪怕只有一句"不收集数据")
□ 5 张截图准备好,分辨率 ≥ 1920×1080
□ 应用图标 1024×1024 PNG,无透明背景,无自加圆角

□ 心理预期:会被打回 1-3 次(参考红目香薰老师"特别正常"的提示)
□ 时间预期:从提交到过审平均 5-10 天

写在最后

这篇推荐文有点长。但我想说的核心其实就一句:

每一个真的上架的鸿蒙 PC 应用、每一篇认真写下来的上架记录,都是社区的资产

红目香薰老师做到了。下一个应该是你或者我。

Logo

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

更多推荐