2026-09
第九天,审核不认 Beta 版打出来的包
第一天晚上十一点
我在一张六行的表格右边加了一列,表头写「能不能用」。白天在制造企业上班,晚上八点多到家,书包一放先不开编辑器,打开浏览器翻官方文档。表格左边是六件事:文件选择、后台任务、窗口分屏、字体渲染、剪贴板、深色模式。
一条一条查,结论抄进第三列,只写三种:能用、绕一下、没有。大部分是「支持,但方式和你熟悉的不一样」:文件选择器只回一个地址,不给真实路径,后续读写要绕一道。少数写「这一版没有」。窗口分屏那条,文档说支持,示例代码却只给了平板,我在备注里打了个问号。
那晚我没写代码。这两天我只想弄清楚一件事:哪些路能走。边界不清楚,后面每写一行都可能是在给返工攒素材。
第二天,清单末尾多一栏
第二天把打问号的那几条重新查了一遍,查到能下结论为止,然后在清单最右边又加了一栏:「第一版不做」。
挪的时候有点舍不得,其中一条本来是我打算用来撑门面的。还是挪了。留着它,第一版就一直要等一个不确定的东西,后面的排期全得跟着它走。
第三到五天,先把字写下来
路划清楚了,接下来全是选:每条路怎么走,代价是什么。第三天晚上九点半,我新建了一个文件,叫 decisions.md,从 01 开始编号。规矩是每条三行:选什么,为什么,代价是什么。到第五天写完,一共 13 条,从数据怎么存、同步怎么做,到输入法怎么处理、深浅色怎么配对。
写到第 7 条卡住了。深浅色怎么配,牵着导航和状态管理,我回头把第 3 条改了半页。这种事在文档里改半页就完了,落到代码里,改的是两天的工作量。一个人做项目,最费时间的时刻是推倒重来——每次推倒,上下文都要重新捡一遍。
那五天里的周末
第 3 天到第 5 天里夹着一个周末,那两天我几乎是全天坐着。周六早上八点坐下,再站起来倒水已经是下午两点。有一晚改到凌晨一点半,第二天在工位上犯困,靠一杯浓茶撑过去。
13 条决策写得快,是因为之前做过类似的项目,很多代价是踩过的。这个速度不全是这 9 天挣来的。
第六天晚上,一篇长文把我卡住
决策抄完,后面几天都在照它写代码。到第六天,模拟器上跑通的东西第一次装到真机上。数据线连着手机,先测两项:冷启动,和大文件滚动。
冷启动还行。大文件不行。我拿一篇三万多字的 Markdown 点开,屏幕白了大概三秒,第一行字才出来。第一次白屏我以为只是没预热,杀进程重开,还是白。改法是把「整篇塞进渲染树」拆掉:分段渲染,先出首屏,剩下的滚到哪儿算哪儿。改完再点,一秒出头。
这类问题只在真机和真实数据上出现。同一篇长文在模拟器里加载得很快,快到我以为没有问题。
第七、八天,又改了两次方案
剩下三项:深色模式对比度、手势与系统返回的冲突、PC 端窗口拉伸后的重排。
手势那项,我原本在列表项上做了侧滑,真机上和系统返回撞在一起,怎么调都别扭,最后把侧滑删掉,用系统自己的返回。深色模式下有两处灰字压在深色底上,调了两版色值。PC 端把窗口拉窄,两栏挤成一栏半,重排规则重写了一版。
到这里,真机上验证过的一共五项:冷启动、大文件滚动、深浅色对比、手势、PC 重排。其中两次直接改掉了原方案:大文件渲染和侧滑。
第九天,驳回
把包提上去,我以为终于完事了。中午驳回通知弹出来时,我正在工位上回一封邮件,手机在桌上震了一下。
理由看着像配置问题。签名、证书、包名,我查了两遍,都对。debug: false 也确认过,没用。翻到构建产物里,才看见身份信息上写着 Beta——审核侧不接受测试版工具链打出来的包。日志给我的不是答案,是症状:一条「配置不合法」。
晚上回家整改。卸载 Beta 版 SDK,装正式版,清了一遍构建目录,重新构建,重新提审。包名和签名一个字符没动。
几天后,过了。
留给下一次的四行
- 提审前,在构建产物里搜一遍工具链版本,看到 Beta、Preview、Canary,先停下来。
- 把最大的那个文件在真机上从头滚到尾,不要在模拟器里看。
- 深色模式打开,把每个页面过一遍。
- 签名、证书、包名、工具链,并排写在一张纸上,逐项打勾。
这张单子存在项目根目录,文件名 adaptation.md。下次做鸿蒙原生应用,第一天就打开它,从第一行开始。