签名、版本元数据与 Release 卫生检查
功能全部就绪之后发布工程要回答的问题变得朴素这个包真的是我们以为的那个包吗元数据对不对、签名是不是发布证书、内容干不干净、构建新不新鲜。这篇按我们 P7 阶段的真实门禁讲这四问。1. 先搞清楚鸿蒙工程里元数据住在哪Android 开发者迁到鸿蒙第一个容易找错的地方就是版本元数据的位置。鸿蒙 Stage 模型工程的配置是两层AppScope/app.json5 # 应用级bundleName / vendor / versionCode / versionName entry/src/main/module.json5 # 模块级abilities / requestPermissions / deviceTypes关键事实versionCode / versionName / vendor 只在AppScope/app.json5module.json5里没有。新人升版时去 module.json5 里翻 versionCode找不到就自己加一个——编译不一定报错但市场认的还是 AppScope 那份于是我明明升版了后台说 versionCode 没递增的事故就这么发生。另一个三元组也别漏compileSdkVersion/targetSdkVersion/compatibleSdkVersion本工程冻结为 24 / 24 / 23见 ADR-001——targetSdkVersion影响系统的兼容性行为和市场的分发范围发布前要和基线一起核对。发布元数据在 P7 第一天冻结成契约注意是冻结成脚本里的常量不是 Wiki 里的表格# Frozen packaging contract (P7-T01) EXPECTED_BUNDLEcom.xiangshikeji.speaklab EXPECTED_VENDORxiangshikeji EXPECTED_VERSION_NAME1.0.0 MIN_VERSION_CODE1门禁逐项 grepAppScope/app.json5核对bundleName 是否漂移、vendor 是否还是example占位单独一条显式检查——模板工程最常见的发布事故、versionName 精确匹配、versionCode ≥ 基线。几个字段的纪律B01 提过这里按发布视角重申bundleName创建 AGC 应用时与之绑定上架后不可改核对它核对这个包会更新到正确的应用条目下versionCode市场的单调轴AGC 后台强制每次提交递增。门禁只查下界≥1递增靠发布流程纪律——内部用 RC 标签speaklab-1.0.0-rc.N管理候选正式递增发生在提交那一刻vendor审核可见的主体标识example占位会直接暴露没认真准备。2. 签名发布证书是上架与侧载的分水岭鸿蒙的签名体系对新手是一套新概念最小可用的心智模型是四样东西材料来源作用私钥.p12 CSRDevEco 本地生成签名的笔丢了无法续签同一应用发布证书.cer用 CSR 在 AppGallery Connect 申请证明笔属于你发布 Profile.p7bAGC 按 bundleName 证书签发声明这个应用允许被这把笔签build-profile.json5的signingConfigs工程内配置把上面三样接进构建DevEco 默认帮你管一套调试签名自动化申请、7 天有效期的调试 Profile 之类跑真机调试很顺滑但调试证书签的包不能上架。发布构建必须显式切到发布signingConfigs——所以门禁里有一条核对Release 构建配置引用的是发布 profile 路径而不是 DevEco 自动生成的调试材料。纪律有三条签名材料不进仓库.p12/.cer/.p7b 全部 gitignore靠团队密钥渠道分发签名信息不进日志构建脚本不打印 alias 密码等上架前最后核对一遍证书有效期——证书过期导致的更新包签名校验失败是发行期最难看的事故。3. 卫生检查的另一面内容与产物一致性元数据和签名之外卫生门禁还核对一组内容事实Release/Debug/活动三个 composition seam 文件都在B02 的机制赖以存在、凭据控制器和 Preferences port 没有越界B15/B09 的红线、切换/构建/审计三个脚本在位。原则是Release 的干净由一组可枚举的事实构成每个事实都有静态证据。产物层面还有一招值得单独说解包审计。HAP 本质是 zip 结构的包用 SDK 自带的解包工具app_unpacking_tool.jar或干脆 unzip 展开就能核对resources/rawfile/里的词库与法律文本在不在、ets/目录里有没有不该出现的 Debug 夹具模块。我们的双 HAP 隔离审计Debug 包与 Release 包互相核对就是在产物层面证明Fake 夹具物理存在于 Debug 包、物理不存在于 Release 包——不是理论上不会编进去是解开看过了确实没有。门禁文件头还有一句重要自我约束Proves static facts only — never substitutes for device RC matrix.静态门禁证明文件层面的事实它不声称替代真机 RC 矩阵那是 P7-T04 的活。每种验证手段说清自己能证明什么、不能证明什么——这和 B16 的三层区分是同一纪律。4. 干净重建验收构建必须从零开始团队被旧产物冒充新构建坑过之后立了干净重建原则独立验收的构建必须从 clean 开始——hvigorw clean清掉增量缓存最好换临时目录重新检出。禁止拿entry/build/里躺着的旧 HAP 改个名就当验收包。这条原则的深层原因Hvigor 增量构建的缓存里可能留着上一个实验的产物而源码时间戳看不出来B18 讲的变异假存活根因是同一个。你验收的可能是一个从未存在过的源码状态的构建——它通过还是失败都没有意义。我们的构建脚本B01默认先 clean验收场景再加临时目录干净检出并且明确不强制git worktree——手段可以灵活临时目录/清缓存检出均可原则只有一条产物必须能从当前源码完整复现。5. SHA-256 取证让同一个包可引用并分清 HAP 与 App Pack每次验收构建打印 SHA-256B01 的脚本习惯在发布流程里它升级为取证语言任务单里写accept HAP Releasef09f7a65…真机hdc install后核对的也是它。你测的是哪个包这个问题从此一个字的歧义空间都没有。但鸿蒙发布有一个容易混淆的产物差异要说清真机侧载安装的是 HAP上架 AppGallery 提交的是 App Pack.app——后者是assembleApp的产物把各模块 HAP 打包成市场分发格式。两个文件、两个 hash引用时写明是哪个。我们的口径真机 RC 矩阵验收用 HAP 的 hash上架提交记录 App Pack 的 hash任务单里两者并存谁也不冒充谁。双 HAPDebugRelease一起给 hash配合 B02 的隔离审计构成完整的这个包干净且新鲜的证据链。6. 发布前清单AppScope/app.json5bundleName / vendor / versionName / versionCode 门禁全绿SDK 三元组与基线一致签名Release 构建引用发布证书 发布 Profile非调试材料材料不进仓库不进日志三个 seam 文件在位双 HAP 解包审计通过Debug 夹具不进 Release干净重建clean 新鲜源码非旧产物HAP 与 App Pack 的 SHA-256 分别记录进验收文档静态门禁 ≠ 真机验证hdc install真机 RC 矩阵另行执行7. 小结元数据只住AppScope/app.json5module.json5 里没有版本字段别找错地方。发布签名四件套.p12 / .cer / .p7b / signingConfigs调试证书签的包上不了架。卫生可枚举事实的静态证据解包审计把干净从推断变成目击。验收构建必须干净重建SHA-256 是引用构建产物的唯一语言HAP 与 App Pack 分开记。

相关新闻

DL3DV-10K数据集实战:用Difix3D+训练高质量3D模型

DL3DV-10K数据集实战:用Difix3D+训练高质量3D模型

DL3DV-10K数据集实战:用Difix3D训练高质量3D模型 【免费下载链接】difix_ref 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/difix_ref Difix3D是一款基于单步扩散模型的3D重建增强工具,能够显著提升3D模型的质量。本文将详细介绍如何利用…

2026/7/25 23:23:14 阅读更多 →
小程序毕设项目:基于Django的校园停车动态监测与辅助小程序开发 轻量化校园智慧停车服务小程序 (源码+文档,讲解、调试运行,定制等)

小程序毕设项目:基于Django的校园停车动态监测与辅助小程序开发 轻量化校园智慧停车服务小程序 (源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/25 23:23:14 阅读更多 →
AI Agent五大设计模式解析与应用实践

AI Agent五大设计模式解析与应用实践

1. 什么是AI Agent设计模式在人工智能领域,AI Agent设计模式就像是建筑师的蓝图,它定义了智能体如何感知环境、做出决策并执行行动。这些模式不是凭空想象出来的,而是经过大量实践验证的最佳实践方案。我见过太多团队在开发AI系统时&#xff…

2026/7/25 23:23:14 阅读更多 →

最新新闻

计算机I/O系统四种控制方式详解:程序查询、中断、DMA与通道对比

计算机I/O系统四种控制方式详解:程序查询、中断、DMA与通道对比

计算机组成原理中的I/O系统是连接CPU与外部设备的关键桥梁,也是各类考试和面试的高频考点。这次我们聚焦I/O选择题专题,通过27道典型题目帮你快速掌握程序查询、程序中断、DMA和通道方式的核心区别与应用场景。 对于正在备考计算机组成原理的同学来说&a…

2026/7/25 23:29:17 阅读更多 →
gimme完全指南:如何快速安装和切换Go语言环境

gimme完全指南:如何快速安装和切换Go语言环境

gimme完全指南:如何快速安装和切换Go语言环境 【免费下载链接】gimme Install go, yay! 项目地址: https://gitcode.com/gh_mirrors/gi/gimme gimme是一款轻量级的Go语言环境管理工具,能够帮助开发者快速安装、切换和管理多个Go版本。本文将详细介…

2026/7/25 23:29:17 阅读更多 →
Type Theme新手入门:Jekyll主题安装与本地预览的终极教程

Type Theme新手入门:Jekyll主题安装与本地预览的终极教程

Type Theme新手入门:Jekyll主题安装与本地预览的终极教程 【免费下载链接】type-theme A free and open-source Jekyll theme with responsive design. Great for blogs and easy to customize. 项目地址: https://gitcode.com/gh_mirrors/ty/type-theme Typ…

2026/7/25 23:29:17 阅读更多 →
HarmonyOS开发实战:小分享-build-profile.json5 构建配置与多 Target 管理

HarmonyOS开发实战:小分享-build-profile.json5 构建配置与多 Target 管理

前言 构建配置 管理应用的编译、签名、目标等构建参数。HarmonyOS 通过 build-profile.json5 配置构建。小分享 App 的工程中已包含此文件。本篇讲解构建配置与多 Target 管理。详细 API 可参考 HarmonyOS 构建配置官方文档。 一、build-profile.json5 完整配置 {"app&…

2026/7/25 23:29:17 阅读更多 →
HarmonyOS开发实战:笔友-main_pages.json 路由表与页面注册机制

HarmonyOS开发实战:笔友-main_pages.json 路由表与页面注册机制

前言 在 HarmonyOS ArkTS 声明式开发范式中,路由表是页面注册与跳转的中枢神经。它以一个简单的 JSON 文件描述了应用中所有可访问的页面,配合 router.pushUrl、router.replaceUrl 等 API 完成页面间导航。 本文将以开源鸿蒙笔友通信应用 xiexin 的 ma…

2026/7/25 23:29:17 阅读更多 →
GoCourse核心特性详解:defer、结构体与切片的实战应用

GoCourse核心特性详解:defer、结构体与切片的实战应用

GoCourse核心特性详解:defer、结构体与切片的实战应用 【免费下载链接】GoCourse Go language course 项目地址: https://gitcode.com/gh_mirrors/go/GoCourse GoCourse是一门全面的Go语言课程,旨在帮助开发者掌握Go语言的核心特性和实战应用。本…

2026/7/25 23:28:17 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻