## 背景
用户要同时办三件事:① 上架华为 AppGallery ② 申请正式发布证书 ③ 在阿里云做 APP 备案。
本目录是这三件事的全部材料,信息**全部取自真实代码与实测**,不是套模板。
## 材料清单
| 文件 | 用途 |
|---|---|
| `README总览.md` | 先看这个:材料索引 + 三件事的先后关系 + 你现在就能做的 |
| `商店上架文案.md` | AGC 各字段可直接复制的文案(一句话简介/应用介绍/更新说明/分级问卷/隐私标签) |
| `商店信息_结构化.json` | 同上,机器可读 |
| `隐私政策.md` | 完整隐私政策正文 |
| `用户服务协议.md` | 完整用户协议正文 |
| `正式证书与签名切换.md` | 发布证书申请 + release 打包全流程 |
| `APP备案材料.md` | 阿里云 APP 备案逐字段填写指引 |
| `图标/app_icon_216.png` | AppGallery 图标(216×216,9.7KB) |
| `图标/app_icon_1024.png` | 备案图标 + 1024 规格(112KB) |
| `verify_materials.py` | 校验材料与代码一致(42 项) |
## 实测核对过的事实(材料里的数字都从这里来)
- 包名 `familybook.yangyq.net`、版本 `0.8.0` / versionCode `800`(`AppScope/app.json5`)
- 应用名「家书」(`AppScope/resources/base/element/string.json`)
- 权限 **只有 3 个且全是普通权限**:INTERNET / GET_NETWORK_INFO / DETECT_GESTURE
(`entry/src/main/module.json5`)—— 定位、通讯录、相机、麦克风、设备标识符**一个都没申请**
- 第三方 SDK:**无广告、无统计、无推送**
- 后端域名 `family.yangyq.net`,服务器阿里云 `47.104.72.161`(中国大陆)
权限少是审核优势:「权限滥用」是驳回第一大类原因,家书直接绕开。
隐私政策第二节与第十节做了**权限逐条对照表**,可直接给审核看。
## 图标为什么要重做
包内 `fb_logo.png` 是 **192×192 且自带圆角**(四角透明,半径约 33px)。
AppGallery 两种规格都不达标(要 216 或 1024,且「square-shaped icon」)。
→ 取内部主色 #F2E9D8 铺满方形画布补掉缺角,图案原样叠加、不裁切不缩放,
生成 216 与 1024 两版。图案与包内完全一致(审核要求后台图标 = 包内图标同一图案)。
第一版直接用 LANCZOS 放大,**保留了圆角**,被 `verify_materials.py` 抓到并修正 ——
这就是写那个校验脚本的意义。
## 四个必须先解决的问题(已写进总览,不隐瞒)
1. **现在是调试证书** → 备案要正式证书的公钥/MD5,上架要正式签名(调试包报 991/1014)
2. **没有「家书」软著** → 备案不强制;华为要求但可用《免责函》过渡(6 项现有软著均无关)
3. **隐私政策页面还不存在** → 站点无 privacy 路由;建议用华为自带托管服务(SyncCalendar 用的那个,实测 200)
4. **阿里云服务器是否包年包月** → 备案硬性要求,需用户去控制台确认
## 顺序(三者有依赖,不能乱)
```
① 申请正式证书(10 分钟,AGC 即时出证)
↓ 拿到后才能
② APP 备案(1~20 工作日,最慢,先提交)
③ 打 release .app 包
↓ 拿到备案号才允许提审
④ 提交 AppGallery 审核(1~7 工作日)
↓
⑤ 公安联网备案(上架后 30 日内)
```
## 校验
`python3 verify_materials.py` → **42 项全过**:
包名/版本/名称与代码一致、权限集合完全一致、隐私政策"未申请"的声明与代码相符、
字数限内、三份文档互相不打架、图标尺寸与四角不透明、已知缺口如实记录。
## 没做的事(刻意的)
- 不生成截图:必须真机原生界面,不能是设计稿(审核明确禁止)
- 不填备案表:实名主体必须本人操作,且工信部短信核验要发到本人手机
- 不碰 AGC:需要登录用户账号,部分环节要扫码/人脸
9.0 KiB
9.0 KiB
家书 · 上架与备案材料总览
生成于 2026-11-01。所有信息取自真实代码与实测,没有套模板硬填。 每个数字、每个权限、每句功能描述都能在仓库里找到出处。
一、材料清单(本目录)
| 文件 | 用途 | 给谁看 |
|---|---|---|
README总览.md |
就是本文件,先看这个 | 你 |
商店上架文案.md |
AGC 各字段的可直接复制文案 | 你填 AGC |
商店信息_结构化.json |
同上,机器可读版(便于核对与将来脚本化) | 你/审核对照 |
隐私政策.md |
完整隐私政策正文 | 托管或部署 |
用户服务协议.md |
完整用户协议正文 | 托管或部署 |
正式证书与签名切换.md |
正式证书申请 + release 打包全流程 | 你照着做 |
APP备案材料.md |
阿里云 APP 备案逐字段填写指引 | 你填备案 |
图标/app_icon_216.png |
AppGallery 应用图标 | 上传 AGC |
图标/app_icon_1024.png |
备案用图标 + 1024 规格 | 上传备案 |
图标在 WSL 的
~/code/FamilyBook_harmonyos/docs/上架/图标/,本目录也放了一份。
二、三个申请的关系(别搞错顺序)
┌─────────────────────────────┐
│ ① 申请正式发布证书 │ ← 最快,10 分钟,AGC 网页即时出
│ .cer + .p7b │
└──────────┬──────────────────┘
│ 拿到后才能做下面两件
┌──────────┴──────────┐
↓ ↓
┌───────────────┐ ┌──────────────────┐
│ ② APP 备案 │ │ ③ 打 release 包 │
│ (阿里云) │ │ 上架 AppGallery│
│ 1~20 工作日 │ │ │
└───────┬───────┘ └────────┬─────────┘
│ 拿到备案号才允许提审 │
└──────────┬──────────┘
↓
┌──────────────────────┐
│ ④ 提交 AppGallery 审核│
│ 1~7 工作日 │
└──────────────────────┘
↓
┌──────────────────────┐
│ ⑤ 公安联网备案 │
│ 上架后 30 日内 │
└──────────────────────┘
🔴 三个容易踩的先后关系
- 正式证书是所有事的前提。备案要它的公钥/MD5,上架要它的签名。调试证书两样都不行。
- 备案比审核慢,先提交备案。备案最慢(管局 1–20 工作日),而华为审核只要 1–7 天。 并行推进:备案提交的同时去打包、准备截图、写文案。
- 没备案号不能提审。华为提审页强制填 APP 备案号,没有会被拒。
三、你现在就能做的(不用等我)
按耗时从短到长排序:
今天就能完成(约 30 分钟)
| # | 事项 | 在哪做 |
|---|---|---|
| 1 | 生成发布证书的密钥库 + CSR | WSL 命令行(见 正式证书与签名切换.md 步骤 1) |
| 2 | AGC 上传 CSR → 下载 .cer |
AGC 网页,即时 |
| 3 | AGC 创建发布 Profile → 下载 .p7b |
AGC 网页,即时 |
| 4 | AGC 新建应用(包名 familybook.yangyq.net) |
AGC 网页 |
| 5 | 微调图标:把 216/1024 两个图标过一眼 | 本目录 图标/ |
| 6 | 截 3–5 张首页截图 | 手机真机 |
需要你做但我做不了的(卡在你手上)
| # | 事项 | 为什么只能你做 |
|---|---|---|
| 7 | AGC 开通地图服务 + 拿 Client ID | 要登录你的开发者账号(这也是 #33 卡住的地方) |
| 8 | 扫码/人脸完成 AGC 的某些验证 | 需要你本人 |
| 9 | 确认阿里云服务器是包年包月 | 要登你的阿里云控制台 |
| 10 | 阿里云备案系统填表 + 签署承诺书 | 实名主体必须本人操作 |
| 11 | 工信部短信核验(24h 内) | 短信发到你手机 |
| 12 | 接审核电话 | 打给你 |
需要我做的(你说一声就干)
| # | 事项 |
|---|---|
| A | 生成发布密钥库与 CSR(我用脚本生成,口令你定) |
| B | 改 build-profile.json5 切 release 签名 |
| C | 打 .app 包并自检(签名/版本号/包名) |
| D | 把隐私政策部署到 family.yangyq.net/privacy(做一个公开页面,无需登录) |
| E | 用正式证书提取公钥与 MD5,填好备案要的那三项 |
| F | 装包真机验证(顺便把 #33、#34 一起验完) |
四、四个必须先解决的问题(否则会白跑一趟)
问题 1:现在是调试证书,备案和上架都不认
- 现用证书:
familybook.yangyq.net.debug.cer(debug) - 备案要正式证书的公钥 + MD5
- 华为审核看到调试签名会报 991 / 1014 包无效
- → 先做
正式证书与签名切换.md
问题 2:没有「家书」的软件著作权
- 你名下 6 项软著全部与家书无关(渤海生态系统 ×2、云任务调度、雾计算、海洋大数据 ×2)
- 阿里云备案不强制软著 → 不影响备案
- 华为上架要求软著,但可用《免责函》过渡 → 能提交,但不保证 100% 过
- → 建议:先用免责函提审,同时去中国版权保护中心申请「家书」软著(免费,30–60 工作日)
- 软著以后上小米/OPPO/vivo/应用宝全都强制要,早办早省事
问题 3:隐私政策页面还不存在
- 站点
family.yangyq.net目前没有 privacy / terms 路由(实测 grep 无结果) - 上架与备案都要可公开访问的 HTTPS 链接
- → 两条路:
- 路 A(推荐):用华为自带的隐私政策托管服务。你上架 SyncCalendar 时用的就是它, 实测链接现在还能打开(HTTP 200)。免费、在华为域名下、审核认可度最高。
- 路 B:我帮你把
隐私政策.md/用户服务协议.md做成公开页面部署到站点。 ⚠️ 必须不需要登录就能访问,否则审核打不开 = 直接驳回。
问题 4:阿里云服务器是不是「包年包月」?
- 备案硬性要求:中国大陆地域 + 包年包月(含自动续费 ≥3 个月)+ 公网 IP
- 你的 IP
47.104.72.161已确认、地域在中国大陆已确认 - 付费方式我查不到,需要你去控制台看一眼
- 如果是按量付费,得先转包年包月,否则备案系统直接拦住
五、几个我按实际代码核对过的关键数据
这些数字如果填错,轻则驳回重来,重则包名冲突无法上架。
| 项 | 值 | 出处 |
|---|---|---|
| 包名 | familybook.yangyq.net |
AppScope/app.json5 → bundleName |
| 版本 | 0.8.0(versionCode 800) |
同上 |
| 应用名 | 家书 |
AppScope/resources/base/element/string.json → app_name |
| 图标源 | AppScope/resources/base/media/fb_logo.png(192×192,自带圆角) |
已重新出 216/1024 方形版 |
| 权限数 | 3 个,全部普通权限,无敏感权限 | entry/src/main/module.json5 |
| 权限清单 | INTERNET / GET_NETWORK_INFO / DETECT_GESTURE | 同上 |
| 第三方 SDK | 无广告、无统计、无推送 | 全仓库 grep 无相关依赖 |
| 后端域名 | family.yangyq.net |
端上 FbHttp/FbGeoRepo |
| 服务器 | 阿里云,47.104.72.161,中国大陆 |
memory/server/aliyun-main.md |
| 开发者 | 个人,杨永全 | 与 SyncCalendar 同一主体 |
关于权限少这件事,是优势
只有 3 个普通权限、没有定位、没有通讯录、没有相机、没有设备标识符, 这在审核里是极大的加分项 —— 「权限滥用」是驳回第一大类原因,家书直接绕开了。 隐私政策第二节和第十节已经做了权限逐条对照表,可以直接给审核看。
六、这次要准备但还没做的(我可以帮你做)
| 事项 | 说明 |
|---|---|
| 首页截图 3–5 张 | 需要真机。手机连上我可以帮你截 |
| 部署隐私政策页面 | 你选路 A 还是路 B,路 B 我来做 |
| 打 release 包 | 拿到 .cer/.p7b 后我来改配置 + 打包 + 自检 |
| 备案三项(公钥/MD5/包名) | 拿到正式证书后我提取好,直接给你复制 |
| 真机联调 | 顺便把 #33(地址联想)、#34(时间联动)一起验完 |
七、一句话建议
今天先做这一件事:把正式发布证书申请下来。
其余所有事(备案、打包、截图、上架)都卡在它后面。它只要 10 分钟,且 AGC 网页即时出证。
拿到 .cer 和 .p7b 之后告诉我,我把签名切过去、打包、提取备案要的三项,一次给你。