Files
FamilyBook_harmonyos/docs/上架/README总览.md
T
laoyang c0d5fdff01 docs(上架): 应用商店上架 / 正式证书 / APP 备案 全套材料
## 背景

用户要同时办三件事:① 上架华为 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:需要登录用户账号,部分环节要扫码/人脸
2026-11-01 09:56:04 +08:00

182 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 家书 · 上架与备案材料总览
> 生成于 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 日内 │
└──────────────────────┘
```
### 🔴 三个容易踩的先后关系
1. **正式证书是所有事的前提**。备案要它的公钥/MD5,上架要它的签名。调试证书两样都不行。
2. **备案比审核慢,先提交备案**。备案最慢(管局 1–20 工作日),而华为审核只要 1–7 天。
**并行推进**:备案提交的同时去打包、准备截图、写文案。
3. **没备案号不能提审**。华为提审页强制填 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` 之后告诉我,我把签名切过去、打包、提取备案要的三项,一次给你。