news 2026/8/13 22:38:56

【细胞工坊|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【细胞工坊|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明

本文基于「细胞工坊」真实 HarmonyOS ArkTS 源码编写,源码目录为D:\huawei\one14-9,重点复核AppScope/app.json5entry/src/main/module.json5entry/src/main/ets/entryability/EntryAbility.etsentry/src/main/resources/base/profile/main_pages.jsonentry/src/main/resources/base/mediapages/Index.etspages/HomePage.etsviews/mine/AboutPage.ets。需要先说明边界:本文只核对本地工程配置、入口链路、素材和页面声明,不声称已经完成 AGC 后台发布、不记录公开上架结果、不伪造审核状态。AGC 后台的包体绑定、审核状态和公开链接必须以真实后台回读为准。

一、发布复查不是“再看一遍”,而是把身份、入口和材料对齐

HarmonyOS 应用进入 AppGallery 发布前,最容易出问题的不是某个页面按钮,而是工程身份和上架材料不一致。比如包名和 AGC 应用不一致,版本号和关于页显示不一致,设备类型选了平板但页面没有做宽屏适配,隐私材料写离线但工程声明了联网权限,图标资源和 AGC 素材不是同一套。这类问题不一定在开发调试时暴露,却会在上架审核或用户安装后变成阻塞。

「细胞工坊」05-20 的复查目标,是把本地工程里的可复核信息串起来:AppScope/app.json5定义包名、版本、图标和应用名;module.json5定义入口 Ability、设备类型、启动图标和页面配置;EntryAbility.ets加载pages/Index并设置深色模式和系统栏;AboutPage.ets展示版本、适配设备和离线隐私说明;resources/base/media下提供应用图标和功能图标。

这篇文章不会把“本地配置存在”写成“平台已发布成功”。本地复查只能证明准备材料有据可查,不能替代 AGC 后台真实选择包体、保存版本、提交审核、回读状态和公开链接。

二、AppScope/app.json5:包名和版本是发布身份的第一锚点

AppScope/app.json5是应用级身份配置。当前源码里可以看到bundleNamecom.jiaweikan.one14versionCode1000000versionName1.0.0vendorjiaweikan,图标和名称分别引用资源。

{ "app": { "bundleName": "com.jiaweikan.one14", "vendor": "jiaweikan", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:layered_image", "label": "$string:app_name" } }

这段配置对应 AppGallery 发布复查的第一组问题:AGC 后台目标应用是否就是com.jiaweikan.one14;上传包体解析出的版本是否是1.0.0;版本号是否比已上架版本递增或符合平台要求;应用名称和图标是否来自当前工程资源,而不是旧包残留。

需要注意的是,versionName=1.0.0也出现在AboutPage.ets的页面展示中。如果工程版本升级到1.0.1,关于页仍显示1.0.0,用户和审核材料就会出现不一致。因此发布复查不是只看 JSON,还要看页面文案。

三、module.json5:设备类型、入口 Ability 和启动素材要同 AGC 选择一致

entry/src/main/module.json5定义 entry 模块和 Ability。当前配置里deviceTypes包含phonetablet2in1,入口为EntryAbility,Ability 图标使用$media:layered_image,启动窗口图标使用$media:app_icon_square,启动背景使用$color:start_window_background

{ "module": { "name": "entry", "type": "entry", "mainElement": "EntryAbility", "deviceTypes": ["phone", "tablet", "2in1"], "pages": "$profile:main_pages", "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "icon": "$media:layered_image", "startWindowIcon": "$media:app_icon_square" } ] } }

这段配置直接影响 AGC 后台材料选择。如果后台只配置手机素材,但包体声明支持平板和 2in1,就可能出现设备素材不完整、页面适配不足或审核信息不一致。反过来,如果 AGC 后台选择了平板,源码页面就要能在宽屏下不截断、不重叠、不被状态栏和导航栏遮挡。

当前HomePage.etsLearningPage.ets都有基于screenWidth的列数调整,EntryAbility.ets也计算了底部导航避让区。这些可以作为“已考虑多设备布局”的源码证据。但源码仍需要真实运行截图和设备测试来支撑 AGC 素材,不能只靠配置声明。

四、EntryAbility:启动链路要从窗口加载到 Index

发布复查必须确认应用能正常启动到主页面。EntryAbility.etsonWindowStageCreate中,先拿到主窗口,关闭全屏布局,设置状态栏和导航栏颜色,再调用windowStage.loadContent('pages/Index')加载主页面。

windowStage.loadContent('pages/Index', (err) => { if (err.code) { hilog.error(DOMAIN, 'One9App', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); return; } hilog.info(DOMAIN, 'One9App', 'Succeeded in loading the content.'); });

这段代码给发布复查提供了明确的启动路径:EntryAbility -> WindowStage -> pages/Index -> Tabs -> Home/Lab/Learning/Mine。如果 AppGallery 预检查或真机测试出现白屏,第一优先级就是确认main_pages.json是否包含pages/IndexloadContent路径是否一致,Index.ets是否能编译,主页面依赖的组件是否有非法文本或资源缺失。

当前EntryAbility还把应用颜色模式设为深色,并设置系统栏颜色。这和 05-17 视觉令牌文章中的深色主题边界一致。发布材料如果写“支持亮暗色切换”,就和源码不一致;更准确的表述是当前版本使用深色视觉方案。

五、main_pages.json:所有可跳转页面都应在页面清单中

entry/src/main/resources/base/profile/main_pages.json列出了主入口、实验页、结果页、场景选择页、学习工具页、我的页子页面、隐私政策和用户协议。这个文件决定路由能否找到页面。

{ "src": [ "pages/Index", "views/experiment/ExperimentSimPage", "views/mine/SettingsPage", "views/mine/AboutPage", "views/mine/PrivacyPolicyPage", "views/mine/UserAgreementPage" ] }

发布复查时,要把页面清单和页面实际跳转统一核对。首页会跳views/experiment/ExperimentSimPage和学习页;我的页会跳记录、收藏、笔记、设置、帮助、关于;设置页会跳隐私政策和用户协议。只要跳转 URL 没在main_pages.json中,发布后就可能出现点击无响应或路由失败。

这也是 AppGallery 审核中“核心功能异常”的常见来源。开发者往往只打开首页截图,没把二级页面全部点过。复查时应至少覆盖主 Tab 和每个一级菜单入口。

六、素材核对:图标资源必须和模块引用对得上

resources/base/media下存在layered_image.jsonapp_icon_square.pngstartIcon.pngbackground.pngforeground.png以及多个业务图标和底部 Tab 图标。module.json5app.json5引用了$media:layered_image$media:app_icon_square,因此这些资源就是包体内的图标来源。

layered_image.json app_icon_square.png startIcon.png ic_tab_home.svg ic_tab_lab.svg ic_tab_learn.svg ic_tab_mine.svg

发布复查不需要在文章里暴露图片二进制内容,但要检查资源是否存在、命名是否和配置引用一致、图标是否清晰、是否有透明背景风险、启动窗口图标和 AGC 应用图标是否来自同一视觉设计。当前本地检查能确认app_icon_square.pngstartIcon.png存在且是 PNG 文件,但真正的显示效果仍应通过安装启动和 AGC 预览确认。

素材一致性还有一个实际问题:关于页里显示的是文本图标Bio,而包体图标来自媒体资源。如果 AGC 截图要展示应用图标,需要确认页面内图标、启动图标和商店图标不会让用户误以为是不同应用。

七、AboutPage:版本、设备和离线声明是市场材料的源码依据

AboutPage.ets中展示了应用名称、版本号、开发框架、适配设备,并在“合规与隐私”区块说明单机离线、无需连接公共互联网、未声明联网权限或敏感权限、不收集上传个人信息、数据保存在 HarmonyOS Preferences、未集成第三方统计广告或推送 SDK。

this.InfoRow('版本号', '1.0.0') this.InfoRow('开发框架', 'HarmonyOS ArkTS') this.InfoRow('适配设备', '手机、平板、二合一设备')

这段页面内容要和AppScope/app.json5module.json5、隐私政策和 AGC 后台材料一致。当前源码中versionName=1.0.0,关于页也写1.0.0deviceTypes包含 phone、tablet、2in1,关于页也写手机、平板、二合一设备;module.json5没有声明联网权限,关于页也写无需联网。

如果未来新增联网反馈、云同步、账号登录或在线内容,关于页和隐私政策必须同步更新。发布复查的核心不是“文案好看”,而是文案能否被源码反证。

八、HomePage 和 Index:设备适配声明要有布局证据

AppGallery 后台如果选择手机、平板、2in1,页面就要能支撑不同宽度。HomePage.ets中有screenWidth状态和gridColumns()方法,用宽度决定 Grid 列数;Index.ets使用bottomBarHeight避让底部系统导航区域。

private gridColumns(): string { if (this.screenWidth > 840) return '1fr 1fr 1fr 1fr' if (this.screenWidth > 600) return '1fr 1fr 1fr' return '1fr 1fr 1fr' }

这说明源码有多设备适配意识,但仍要真实截图验证。比如首页 Grid 在手机和 2in1 宽屏下是否高度足够,按钮文字是否被乱码或截断影响,底部导航是否避让系统手势区域,状态栏文字是否在深色背景上可读。

发布复查时不要只截首页。至少要截首页、实验室、学习中心、我的页、隐私政策或关于页。因为设备声明覆盖的是整个应用,不是首页。

九、签名配置和包体选择:只核对存在,不泄露材料

工程的build-profile.json5中存在 HarmonyOS 签名配置和 release/debug 构建模式。发布复查时要确认签名配置对应 intended release 包体,AGC 后台选中的包体和本地构建出的版本一致。这里有严格边界:证书路径、密钥口令、Store 密码、Profile 路径等属于敏感信息,不应写入文章、日志或公开材料。

文章只能写复查动作:确认有 release 构建配置,确认目标 SDK 和兼容 SDK 符合项目预期,确认 AGC 后台选择的是最新上传包体,确认版本名和版本号与app.json5一致。不能把任何签名秘密打印出来,也不能把“本地存在签名配置”说成“已成功提交 AGC 审核”。

如果发布时出现包体绑定错误,正确处理方式是回到 AGC 版本页,打开包体选择,按版本号、上传时间和大小选择目标包体,保存后再提交,而不是只上传文件就认为完成发布。

十、发布复查表:把每一项绑定到源码位置

复查项源码位置当前证据
包名AppScope/app.json5com.jiaweikan.one14
版本AppScope/app.json5/AboutPage.ets1.0.0,版本号页面一致
设备类型module.json5/AboutPage.etsphone、tablet、2in1;页面写手机、平板、二合一
入口 Abilitymodule.json5EntryAbility
主页面EntryAbility.ets/main_pages.json加载pages/Index
图标素材resources/base/medialayered_image.jsonapp_icon_square.png存在
离线声明AboutPage.ets/module.json5文案写离线,模块未声明联网权限
隐私入口main_pages.json/ 设置页隐私政策、用户协议页面在清单内
多设备布局HomePage.ets/Index.ets宽度列数和底部避让有代码依据

这张表可以直接作为发布前自查入口。任何一项不一致,都应先修本地工程或材料,再进入 AGC 后台操作。

十一、常见发布复查问题与修复方向

问题可能后果修复方向
versionName升级但关于页没改用户和审核看到版本不一致把版本展示改为资源或构建时同步
AGC 选择设备多于页面适配范围平板/2in1 截图或运行异常补多设备截图和布局验证,或收窄设备
图标资源和 AGC 图标不是同一套商店展示与安装体验割裂统一包体图标、启动图标和 AGC 素材
隐私文案写离线但新增联网能力审核材料与真实行为冲突同步权限、隐私政策、关于页和市场描述
只上传包体但未在版本页选择AGC 仍绑定旧包回到版本页选择最新包体并保存
源码中文乱码进入页面截图和用户体验异常发布前统一编码检查和真机截图复核

对「细胞工坊」来说,当前最需要关注的是两个边界:一是源码中多处中文在终端显示异常,发布前必须以 DevEco/真机页面为准确认显示正常;二是前几篇已发现部分页面文件头混入外部测试说明,发布前必须清理非法文本并重新构建。

十二、结论:本地复查是 AGC 操作前的证据准备

基于D:\huawei\one14-9的真实源码,05-20 能得出的结论是:细胞工坊本地工程中,包名为com.jiaweikan.one14,版本为1.0.0,模块声明支持 phone、tablet、2in1,入口 Ability 加载pages/Index,图标素材存在,关于页展示版本、设备和离线隐私说明,主页面有一定多设备布局依据。

不能得出的结论是:AGC 后台已经选中最新包体、已经提交审核、已经公开发布、已经获得真实公开 URL。发布复查的价值在于把本地证据准备好,减少进入平台后才发现身份、版本、设备、素材或声明不一致。真正的全平台发布和腾讯文档提报,必须等公开页面和平台回读数据存在后再记录。

部分内容由AI辅助生成。

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

服装自产自销公司选软件别买错:九个避坑要点

做服装自产自销的老板,这几年应该都有同一个感受:生意越来越难做,单子越来越碎,利润越来越薄。以前靠经验、靠人盯、靠Excel硬扛,还能勉强转得动。到了2026年,这条路径已经走不通了。于是很多老板开始考虑上…

作者头像 李华
网站建设 2026/8/13 22:34:01

从零搭建CentOS 7 EDA环境:IC618+SPECTRE18+Calibre2019全流程指南

1. 从零开始的EDA环境构建:为什么是这套组合? 如果你刚踏入模拟集成电路设计的大门,或者从其他领域转过来,面对的第一个硬骨头往往不是电路理论,而是那个传说中的“环境搭建”。论坛里、群里,前辈们总是轻描…

作者头像 李华
网站建设 2026/8/13 22:31:46

MySQL-Innodb-内存结构

一、 Innodb内存结构的基本组成 1.1 基本结构说明Innodb内存结构的组成大致有: Buffer pool:缓冲池,用于存储数据页、索引页(包括自适应哈希索引、undolog缓冲区);Change buffer:变更缓冲区&…

作者头像 李华
网站建设 2026/8/13 22:30:20

2026年GEO工具选型对比评测:五大维度如何避坑?

2026年,搜索行为早已不仅仅是关键词匹配。当用户开始习惯向AI提问“哪款工具适合某场景”或“某类产品有哪些推荐”时,企业必须意识到,品牌在AI回复中的可见性(GEO)已成为品牌资产管理的关键。然而,面对市面…

作者头像 李华
网站建设 2026/8/13 22:26:56

今年 30+,干了 8 年前端开发,转 Agent 开发整整两年了

今年 30,干了 8 年前端开发,转 Agent 开发整整两年了。 从最开始看着大模型文档一头雾水,到现在带团队帮企业落地线上 Agent 应用,我最大的感受就一句话:大部分想转 Agent 的程序员,从第一步就把重点给搞错…

作者头像 李华
网站建设 2026/8/13 22:21:38

如何通过专业可视化工具提升团队协作效率:3个实战技巧

如何通过专业可视化工具提升团队协作效率:3个实战技巧 【免费下载链接】diagram-design 29 editorial diagram types for Claude Code. Self-contained HTML SVG. No shadows, no Mermaid-slop. 项目地址: https://gitcode.com/GitHub_Trending/di/diagram-desig…

作者头像 李华