Files
FamilyBook_harmonyos/docs/上架/APP备案材料.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

313 lines
14 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.
# 家书 · APP 备案填报材料(阿里云)
> **备案类型**:新增 APP(在你的既有主体下「新增服务」)
> **接入商**:阿里云(服务器 IP `47.104.72.161`,主机名 `yangyq`,位于阿里云中国大陆节点)
> **填报时间**:2026-11-01 整理
---
## 🔴 开工前必须确认的三件事
### 1. 服务器必须是阿里云的,且满足"可备案"要求
| 要求 | 你的情况 | 判定 |
|---|---|---|
| 中国内地地域 | ✅ 阿里云大陆节点 | 通过 |
| 包年包月(含自动续费 ≥3 个月) | ⚠️ **需你自己确认** | 待确认 |
| 已分配公网 IP | ✅ `47.104.72.161` | 通过 |
> **怎么查**:阿里云控制台 → 云服务器 ECS → 实例详情 → 看「付费方式」。
> 如果是**按量付费**,备案系统会提示不符合要求,需要转成包年包月(或已开通自动续费 3 个月以上)。
> 若你的站点实际跑在**轻量应用服务器**上,也在控制台对应产品里看。
### 2. 域名必须已备案,且与 APP 绑定
- APP 后台域名:**`family.yangyq.net`**
- 你已有 `yangyq.net` 的 ICP 备案(主站一直在跑),子域名 `family.yangyq.net` 通常可以**新增接入**或已在同一主体下
- ⚠️ 阿里云明确提示:**如果域名同时用于网站访问,该域名也必须完成网站备案**,否则网站有被关闭风险
→ 若 `family.yangyq.net` 之前没单独做网站备案,建议**一起补上**(同订单可提)
### 3. 必须已经有正式签名证书
备案要填 **公钥 + 签名 MD5**,**调试证书的不能用于备案**。
→ 先完成 `正式证书与签名切换.md` 里的步骤 1–3。
---
## 一、主体信息(复用实名信息,无需重填)
| 字段 | 填写 |
|---|---|
| 主体类型 | **个人** |
| 姓名 | 杨永全 |
| 证件类型 | 居民身份证 |
| 证件号码 | (系统已存,核对即可) |
| 手机号 | (系统已存,**必须能收短信** —— 后面有工信部核验) |
| 邮箱 | `i@yangyq.net` |
> 💡 个人主体管控比企业严:**类目只能选"无经营类目"**(工具、记事本之类),
> **不能**选电商、金融、医疗、教育、资讯、直播这些需要前置审批的。
> 家书正好是工具类,无缝符合。
---
## 二、APP 基础信息(逐字段照抄)
| 字段 | 填写内容 | 备注 |
|---|---|---|
| **APP 名称** | `家书` | ⚠️ 必须与**应用商店上架名称、桌面显示名称、软著名称**完全一致 |
| **APP 图标** | 用 `图标/app_icon_1024.png` | 1024×1024 正方形,无水印。备案系统要求清晰方图 |
| **APP 首页截图** | 首页(今日概览)截图 | ⚠️ **只放首页**,不能出现广告/充值/付费任何入口 |
| **内容分类** | `生活服务` → `工具` | 个人主体可选的合规类目 |
| **APP 语言** | `简体中文` | |
| **是否对外提供 SDK 服务** | **否** | 家书不对外提供 SDK |
| **使用的三方 SDK** | 见下方「三方 SDK 说明」 | 选填,但建议如实填 |
| **APP 全部后台服务域名** | `family.yangyq.net` | 只填域名主体部分,不填 `https://`、不带 `www` |
| **服务器所在地** | `山东省`(或服务器实际机房省份) | ⚠️ 填**备案服务器的机房省份**,不是你家所在地。阿里云控制台实例详情里有「地域」,如「华北2(北京)」就填北京 |
### 三方 SDK 说明(如系统要求填)
家书**不含任何第三方统计/广告/推送 SDK**。用到的都是鸿蒙系统内置能力,按备案系统口径可填:
```
无第三方 SDK。
仅调用设备系统内置能力:华为 Map Kit(地点输入联想,由 HMS Core 提供)。
不含广告、统计、推送类第三方 SDK,不采集设备标识符。
```
> 如果备案系统强制要求填至少一项,就填:
> `华为 Map Kit(华为终端有限公司)— 地点搜索联想`。
---
## 三、APP 唯一标识(备案核心,最容易填错)
| 字段 | 填写内容 | 从哪来 |
|---|---|---|
| **应用包名 / Bundle ID** | `familybook.yangyq.net` | `AppScope/app.json5 → bundleName` |
| **公钥** | 见下方「待填:正式证书信息」 | `openssl x509 -in *.release.cer -pubkey -noout` |
| **签名 MD5** | 见下方「待填:正式证书信息」 | `openssl x509 -in *.release.cer -fingerprint -MD5 -noout` |
| 平台 | HarmonyOS | |
### 🔴 签名 MD5 填写格式(高频错误)
```
openssl 输出: MD5 Fingerprint=7D:0C:4B:46:B7:C1:C0:D2:3C:6E:43:16:E5:C9:96:A3
备案要填: 7d0c4b46b7c1c0d23c6e4316e5c996a3
```
**规则:去掉所有冒号,只留 32 位十六进制字符。** 大小写通常都接受,建议统一小写。
### 待填:正式证书信息
> ⚠️ 下面这三项在你的**调试证书**上是这样(**不能用于备案**,仅作格式演示):
```
包名 familybook.yangyq.net
公钥 MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEWidkGnDSOw3/HE2y2GHl+fpWBIa5S+IlnNrsGUvwC1I2QWvtqCHWmwFlFK95zKXiM8s9yV3VVXh7ivN8ZJO3SC5N1TCrvB2lpLMBwcz4DA0kgHCMm/wDec6kOHx1xvCR
MD5(去冒号) 7d0c4b46b7c1c0d23c6e4316e5c996a3 ← 调试证书的,勿用
```
**正式证书拿到后**,跑这三条命令,把输出的值填进备案系统:
```bash
cd ~/code/cert/familybook
# ① 公钥(整段,含 BEGIN/END 两行也一起复制,或只复制中间那段都行,按备案页提示)
openssl x509 -in familybook.yangyq.net.release.cer -pubkey -noout
# ② MD5(记得去掉冒号)
openssl x509 -in familybook.yangyq.net.release.cer -fingerprint -MD5 -noout
# ③ 核对包名
grep bundleName ~/code/FamilyBook_harmonyos/AppScope/app.json5
```
---
## 四、上线渠道
| 字段 | 填写 |
|---|---|
| 上线渠道 | ☑ **华为应用市场(AppGallery)** |
| | ☐ 其他安卓市场(后续可加) |
| | ☐ App Store(无 iOS 版,不勾) |
> 注意:备案时若勾了某个商店,后续实际没上,一般不影响;
> 但**勾了就必须真的能上**(审核可能抽查)。目前只勾华为即可。
---
## 五、服务内容说明(这个字段决定审核印象)
备案系统会让你填「互联网信息服务备注 / 服务内容详细说明」。**照下面填**:
```
家书是一款供家庭内部使用的个人生活档案管理工具,不面向公众提供信息服务,
不含社交、新闻资讯、电商交易、直播、金融理财等功能。
主要功能:家庭成员记录日程与待办事项、记录家庭纪念日、记录观影与旅行经历、
记录家庭日常收支(仅记账,不涉及任何支付、投资、理财业务)、
整理个人读书笔记与家庭资料文档。数据仅存储于用户自行部署的服务器,
不同家庭之间的数据完全隔离,无公开内容发布与用户间社交功能。
本应用不含广告,不含付费与内购,不设用户充值入口。
```
> ⚠️ 这段话是**照着实际情况**写的,不是套模板。审核电话回访时会问"你这个应用是干什么的",
> 照这个说就不会对不上。
---
## 六、需要上传的附件
| 附件 | 要求 | 你是否有 |
|---|---|---|
| **APP 图标** | 512×512 或 1024×1024 正方形,无水印无违规图案 | ✅ 用 `图标/app_icon_1024.png` |
| **APP 首页截图** | 只展示首页基础功能;**禁止**出现广告弹窗、充值入口、商品交易、付费会员、资讯新闻 | ✅ 需你截一张首页 |
| **身份证正反面** | 清晰、在有效期内 | ✅ 系统已有(实名时上传过) |
| **《移动应用备案合规承诺书》** | 备案系统**在线签署**,不用自己准备 | ✅ 系统生成 |
| **前置审批文件** | 仅金融/医疗/教育/新闻/出版/直播等需要 | ❌ **不需要**(工具类) |
| **软件著作权证书** | 阿里云 APP 备案**不强制** | ⚠️ 无,见下方说明 |
> 💡 **截图的讲究**(个人主体查得更严):
> 截图里**不要**出现任何金额数字(比如财务模块的账目)、不要出现真实姓名手机号。
> 首页如果有"账本余额"之类的数字,建议截图前先把数据清空或打码。
---
## 七、时间线与流程
```
① 阿里云备案后台 → 已有备案主体 → 新增服务 → 选「移动应用(APP)」
↓
② 填上面第一~五节的所有字段 + 上传附件
↓
③ 签署《移动应用备案合规承诺书》(在线)
↓
④ 提交 → 阿里云初审(1–2 个工作日,会打电话核验)
↓ ⚠️ 电话一定要接,问的就是"这个 App 干什么用的"
⑤ 初审通过 → 工信部发短信 → 【24 小时内】完成短信核验
↓ ⚠️ 超时订单作废,要重新提交
⑥ 管局审核(1–20 个工作日,多数省约 7 天)
↓
⑦ 下发 APP 备案号(形如:鲁ICP备XXXXXXXX号-2A)
↓
⑧ 【30 日内】完成公安联网备案(全国互联网安全管理服务平台)
```
### 关键提醒
- **工信部短信 24 小时内必须完成核验**,否则订单作废重来。提交后那几天手机别静音。
- **管局审核期间不要改服务器、不要改域名解析**,否则可能被判"信息不实"驳回。
- **公安联网备案是独立的第二步**,拿到 ICP 备案号后 30 日内必须在
https://beian.mps.gov.cn 单独做,不做会被抽查下架。
---
## 八、软著问题:目前没有「家书」软著
### 现状核实
你名下有 6 项软著(`memory/profile/05-软著.md`):
| 软件名称 | 登记号 | 与家书有关? |
|---|---|---|
| 渤海生态系统关键要素存储管理系统 | 2025SR2443329 | ❌ 无关 |
| 渤海生态系统关键要素时空检索系统 | 2025SR1286975 | ❌ 无关 |
| 云任务调度仿真系统 | 2024SR0768026 | ❌ 无关 |
| 雾计算调度部署仿真系统 | 2022SR1052757 | ❌ 无关 |
| 海洋大数据云服务平台任务调度系统 | 2021SR0710102 | ❌ 无关 |
| 海洋大数据云服务平台 | 2021SR0401836 | ❌ 无关 |
**结论:没有「家书」的软著。**
### 影响与对策
| 场景 | 是否必须软著 | 对策 |
|---|---|---|
| **阿里云 APP 备案** | ❌ 不强制 | 直接提交,无需软著 |
| **华为 AppGallery 上架** | ⚠️ 官方要求,但**未取得时可下载华为《免责函》加盖公章上传** | 见下 |
### 华为上架的软著处理(两条路)
**路线 A:走免责函(快,1 天)**
1. 在 AGC 提审页面找到「软件著作权」材料项
2. 下载华为提供的**《免责函》模板**
3. 填写并**签名**(个人开发者手写签名 + 按手印/身份证号)
4. 扫描上传
> ⚠️ 免责函不是永久通行证。华为可能要求"后续补交软著"。个人开发者用免责函过审是常见做法,
> 但不是 100% 保证,看审核员。
**路线 B:申请「家书」软著(稳,约 1–3 个月)**
| 项 | 说明 |
|---|---|
| 渠道 | 中国版权保护中心 https://www.ccopyright.com.cn |
| 名称 | 建议与商店名一致:**家书家庭生活档案管理软件**(软件全称含"家书",简称"家书") |
| 材料 | 源代码前后各 30 页(共 60 页)+ 用户手册 + 申请表 + 身份证 |
| 费用 | 官方登记免费(自行申请);加急/代办另计 |
| 周期 | 普通 **30–60 个工作日**;加急可缩到几天(要钱) |
| 著作权人 | **杨永全**(个人,与开发者账号主体一致) |
> 💡 **建议**:先用路线 A 提交上架,同时并行申请路线 B。
> 软著是长期资产,以后上别的安卓市场(小米/OPPO/vivo/应用宝)**全部强制要**,早办早省事。
### 🔴 三处名称必须一致
```
华为后台应用名称 = 桌面显示名 = (将来)软著上的软件名称简称
家书 = 家书 = 家书
```
不一致是高频驳回点,改名成本极高(应用名上架后基本改不了)。
---
## 九、提交前自检清单
- ☐ 服务器确认是**包年包月**(或已开自动续费 ≥3 个月),不是按量付费
- ☐ `family.yangyq.net` 的 **ICP 网站备案**已完成(若未做,同订单一起提)
- ☐ 已拿到**正式发布证书**,已提取公钥与 MD5(MD5 **已去冒号**)
- ☐ 包名确认为 `familybook.yangyq.net`
- ☐ APP 名称填「家书」,与商店一致
- ☐ 图标是 1024×1024 正方形,无水印
- ☐ 首页截图**不含**金额/真实姓名/手机号/广告/充值入口
- ☐ 内容分类选 **生活服务 → 工具**
- ☐ 「是否对外提供 SDK」填 **否**
- ☐ 后台服务域名只填 `family.yangyq.net`(不带 https/www)
- ☐ 服务器所在地填**机房省份**(不是家庭住址省份)
- ☐ 上线渠道勾**华为应用市场**
- ☐ 提交后手机保持畅通,**工信部短信 24 小时内完成核验**
- ☐ 拿到备案号后 **30 日内**做公安联网备案
---
## 十、备案号到手后填到哪
| 地方 | 怎么填 |
|---|---|
| **华为 AppGallery 提审** | 「APP 备案号」字段,填 `鲁ICP备XXXXXXXX号-2AX` |
| **应用内** | `设置 → 关于` 展示备案号(合规要求,建议做) |
| **网站页脚** | `family.yangyq.net` 页面底部展示 |
> 备案号格式:`<省份简称>ICP备<8位数字>号-<序号><A或空>`
> 例:`鲁ICP备2026012345号-3A`(A 表示 APP)
---
## 十一、常见驳回原因(提前避开)
| 驳回原因 | 怎么避免 |
|---|---|
| APP 名称与商店/桌面名称不一致 | 三处统一「家书」 |
| 截图含广告/充值/资讯/金额 | 只放首页,先清空敏感数据 |
| 服务器不符合备案要求(按量付费) | 提交前先改包年包月 |
| 域名未备案 / 与主体不一致 | 先确认 `family.yangyq.net` 已备案在同一主体 |
| MD5 带冒号或位数不对 | 去冒号、确认 32 位 |
| 包名与上架包不一致 | 从 `app.json5` 直接复制,别手打 |
| 类目选了需要前置审批的(金融/医疗等) | 个人主体只能选工具/记事本这类 |
| 工信部短信超 24 小时未核验 | 提交后手机别静音,每天看短信 |
| 审核电话没接 | 提交后 3 天内保持电话畅通 |