Files
FamilyBook_harmonyos/docs/上架/README总览.md
T
laoyang 825008657b 品牌改名:家书 → 岁月家 (laoyang/FamilyBook#38)
## 起因

用户 2026-11-01:「家书已经有人做了,八月份刚上线的」。

核实:「家书 HomeBook」(广州家书科技有限责任公司,粤ICP备2026096420号,
2026-06 成立、08 上线)。功能**部分重合**(家庭记录 + 相册 + 家谱)。
华为审核指南 1.3「应用名称不得和其他应用名称相同,避免混淆」,
虽然个人与企业主体查重不互通、技术上能过,但被人工驳回概率高。

## 定名过程(用户逐个否掉)

| 候选 | 否决原因 |
|---|---|
| 寸草 | — |
| 家卷 | ❌ 与「家眷」同音,口头传播会打错字 |
| 家时光 | ❌ App Store 已有「家·时光」定位几乎一致;且「家+时光」是常见组合,辨识度低 |
| 家纪 | ❌ 已有重名 |
| **岁月家** | ✅ 搜不到同名应用;是口号的直接展开(岁月 + 家) |

## 最终定稿(用户明确指定)

```
应用名      岁月家
主标语      一家人用岁月写成的一本书     ← 不变
一句话简介  一家人用岁月写成的一本书     ← 改为与标语相同
官网标题    岁月家 · 一家人用岁月写成的一本书
英文名      FamilyBook                ← 不变
包名        familybook.yangyq.net     ← 不变
```

## 改动范围(17 + 18 处,12 个文件)

### 应用名(17 处)
`AppScope/resources/base/element/string.json` 的 app_name,
`entry/.../string.json` 的 16 条(应用名、卡片名、无障碍描述)。

### 用户可见文案(18 处)
`FbBackgroundSync` / `EntryAbility`「正在同步家书数据」、
`FbAttachOpen`「家书附件」相册名、`FbHttp` 地址校验失败提示、
`FbCardData` / `FbCardMediaData` 卡片空态「先在「家书」里填写服务器地址」、
`TopBar` / `Drawer` / `FbLoginPage` 的应用名文本、`FbSettingsPage` 的说明。

## 刻意不改

- **包名 / bundleName**(用户明确要求不变,且改了等于换一个应用)
- **英文名 FamilyBook**、目录名、仓库名(改了会让 git 历史、部署脚本、证书路径全跟改)
- **代码注释**里 200+ 处「家书 FamilyBook · 某模块」—— 不影响运行时,
  改了只会制造噪音 diff,让将来 blame 变难
- **主标语**里一个字都没动

## 验证

### 编译
`BUILD SUCCESSFUL`,33 tasks。

### 产物实测
解包 `.hap` 的 `resources.index`:
- 「岁月家」出现 **17** 次
- 「家书」出现 **0** 次

### 全局一致性校验(31 项全过)
`_tooling/check_rename.js`:
- 客户端 app_name / EntryAbility_label / 产物内容
- .ets 用户可见文案无残留(排除注释)
- 服务端非注释代码无残留
- `Auth::homeTitle()` 用「某某某的家庭岁月」
- `DEFAULT_SLOGAN` 未被改动
- 官网线上 5 个页面无「家书」、标题含岁月家、渲染后 h1 是品牌名
- 材料 app_name / 一句话简介 / 包名 / versionCode / 域名

⚠️ 校验过程中我自己的判据出了 2 次假红:
① 注释识别不全(漏了 `/**` 单行块注释和 `<!--` HTML 注释)→ 补齐 isCommentLine
② 「为什么叫岁月家」整节重写后,旧断言还在查「书信」「家与书」
   (那是**旧名字**的逻辑)→ 改成查「岁月」+「家」的拆解

## 一处语义决策(问过用户)

网页端 `Auth::homeTitle()` 生成「某某某的家书」—— 这是**产品核心语义**
(每个家有自己的那一本),直接换成品牌名会读成「某某某的岁月家」,不通。

用户定:改成 **「某某某的家庭岁月」**。
兜底(无姓名时)仍用品牌名「岁月家」。

## 连带影响(不阻塞)

- 上架材料 7 个文件已同步(含软著全称改为「岁月家家庭生活档案管理软件」)
- 官网已部署,线上标题已是新名字
- 软著申请尚未提交 —— 正好一次写对新名字,不需要变更
2026-11-01 19:55:36 +08:00

9.0 KiB
Raw Blame History

岁月家 · 上架与备案材料总览

生成于 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 之后告诉我,我把签名切过去、打包、提取备案要的三项,一次给你。