Files
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

182 lines
9.0 KiB
Markdown
Raw Permalink 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` 之后告诉我,我把签名切过去、打包、提取备案要的三项,一次给你。