11 月 19 日晚上十点四十,我坐在客厅的矮桌前,电脑屏幕调到最暗。应用市场里,49图库 的详情页显示版本 3.2.7,可同一个页面往下拉,「更新说明」里写的却是 3.2.6。两边不一致。我截了三张图,存进一个叫「待查」的文件夹。文件夹里已经有 41 个文件。
这不是第一次。上一次是 10 月 3 日,同一个应用,安装包大小在列表中写的是 38.6MB,点进去详情页变成 41.2MB。我当时在笔记本上写下一行字:「列表页与详情页的数据可能来自两套不同的缓存」。写完就合上了本子,没有继续。那天是国庆,楼下有人在放烟花,我没关窗。
这次我多走了一步。我把应用市场管理页面的刷新动作录了屏,用的是手机上自带的录屏工具,一共录了 2 分 14 秒。回放的时候我发现一个细节:从列表页进入详情页,版本号会先短暂地显示「正在获取」,大约 0.8 秒之后才落定成 3.2.7。也就是说,那个数字不是读出来的,是拼出来的。它可能来自本地缓存,也可能是绕了一圈服务器回来的。区别很大,我分不清是哪一个。
「参数对不上」这件事,最麻烦的地方不是错,而是你不知道哪一个是准的。
我认识的一个做安卓渠道的朋友叫周航,他给我讲过一个流程。应用市场抓包,通常会请求一个叫 version-check 的接口,参数里带包名、渠道号、设备机型。服务端返回一个 JSON,里面有 versionCode 和 versionName 两个字段。他说,很多渠道会把 versionName 做展示,versionCode 做比较。如果两个字段在打包时就不是同一套流水线生成的,展示就会打架。他最后说了一句:「这种情况一般得等两天,缓存过期自己就对齐了。」两天。我把这个词圈了出来。
可用户不会等两天。有人在评论区问:「更新之后打不开,是不是版本错了。」下面没人回。我数了一下,那条评论下面只有一个小红点,像是有人点了「有帮助」,又点了取消。我把它截下来,编号 42,放进「待查」。
接下来的事更绕。我想确认「49图库免费打开应用市场管理更新」这件事到底发生在哪个环节,于是去翻了十澳门正版图库的相关说明页,那里提到过一次渠道分发的口径。又去翻49版正版图库下载的页面,发现它给的时间戳是 11 月 18 日 17:20。同一天里,澳49图库网那边记的却是 11 月 19 日 09:05。两个时间差了不到 16 小时,但都不等于我看到的那个版本号。三份资料,三个说法。我把它们并排贴在屏幕上,看了很久,没有找到交叉点。
说实话,我现在倾向于一个不太好听的判断:这类「应用市场管理更新」出问题,绝大多数时候不是技术难,是没人负责把话说清楚。版本号、安装包、更新时间,三个字段本该出自同一个来源,可实际是三条线各自跑。跑岔了就等缓存过期,过期还不对就等下一次发版。用户看到的就是一句「更新失败,请重试」。这一句背后没人认领。这话可能偏激,但我确实没找到反例。
十一点二十分,我关掉录屏,把 42 号文件重命名成「版本号不一致-3.2.7-vs-3.2.6」。然后打开记事本,写下一个还没答案的问题:如果一台设备在 0.8 秒的「正在获取」窗口里被杀掉进程,它下次打开时会读到哪个数。我没有设备去做这个测试,也没有权限去读那个接口。问题就停在这里。窗外已经没有人放烟花了。
第二天中午,我重新打开应用市场。版本号变成了 3.2.7,更新说明也变成了 3.2.7。两边对齐了。没有公告,没有说明,什么都没有。我盯着屏幕看了几秒,把「待查」文件夹里那三张截图拖进了一个新建的子文件夹,名字叫「已自行消失」。文件夹里现在有 9 个文件。我还没决定要不要删。