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:需要登录用户账号,部分环节要扫码/人脸
This commit is contained in:
@@ -0,0 +1,313 @@
|
||||
# 家书 · 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 天内保持电话畅通 |
|
||||
Reference in New Issue
Block a user