品牌改名:家书 → 岁月家 (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 个文件已同步(含软著全称改为「岁月家家庭生活档案管理软件」)
- 官网已部署,线上标题已是新名字
- 软著申请尚未提交 —— 正好一次写对新名字,不需要变更
This commit is contained in:
2026-11-01 19:55:36 +08:00
parent c0d5fdff01
commit 825008657b
19 changed files with 121 additions and 98 deletions
+6 -6
View File
@@ -1,4 +1,4 @@
# 华为正式发布证书申请 + 家书切 release 签名
# 华为正式发布证书申请 + 岁月家切 release 签名
> **一句话结论**:现在用的是**调试证书**,它能装到自己手机,但**不能上架、不能用于 APP 备案**。
> 必须先生成**正式发布证书(.cer)+ 发布 Profile(.p7b)**,再改 `build-profile.json5` 切到 release。
@@ -97,10 +97,10 @@ keytool -certreq \
> ⚠️ 一个账号最多 1 个**发布证书**(调试证书可多个)。若已有(SyncCalendar 用的那个),
> 需要先**吊销**旧的才能新建 —— 但吊销会让 SyncCalendar 的更新包签不了名,
> **所以建议:给家书单独申请前,先确认是不是共用同一个。**
> **所以建议:给岁月家单独申请前,先确认是不是共用同一个。**
>
> 更稳妥的做法:**同一个发布证书可以签多个应用**(Profile 才是按应用绑定的),
> 所以直接用 SyncCalendar 那个发布证书也行,只需为家书新建一个 **Profile**。
> 所以直接用 SyncCalendar 那个发布证书也行,只需为岁月家新建一个 **Profile**。
### 步骤 3:创建发布 Profile(按应用绑定)
@@ -108,18 +108,18 @@ keytool -certreq \
2. 点 **「新增 Profile」**
3. Profile 类型选 **「发布」**
4. 绑定:
- **应用**:选「家书」(若 AGC 里还没建这个应用,先去「我的应用 → 新建」建一个)
- **应用**:选「岁月家」(若 AGC 里还没建这个应用,先去「我的应用 → 新建」建一个)
- **证书**:选上一步那个发布证书
5. 提交 → 下载得到 **`familybook.yangyq.net.release.p7b`**
> ⚠️ Profile 与**包名**绑定。家书包名 `familybook.yangyq.net`,
> ⚠️ Profile 与**包名**绑定。岁月家包名 `familybook.yangyq.net`,
> 必须与 AGC 里创建应用时填的包名**完全一致**。
### 步骤 4:配置应用包名与指纹(备案也要用)
1. AGC →「我的应用」→ 新建(如果还没建)
- 平台:**HarmonyOS**
- 应用名称:**家书**
- 应用名称:**岁月家**
- 包名:**familybook.yangyq.net**(一字不差,**创建后不可改**)
- 分类:实用工具
- 默认语言:简体中文