从内部发布到真实使用:修好代码之后,还要看资料从哪里来、界面何时更新。 今天的主要工作仍在 KanBox。凌晨,承接上一轮修复的 1.31.0(166)完成内部 TestFlight 发布;到了晚上,实际使用又暴露出几处问题:新增内容没有及时出现在小组件里,歌曲、应用和店铺的资料卡也缺少一些本该显示的信息。这些问题有不同的原因。小组件漏了云端入库后的刷新,资料卡则要分别处理公开网页能提供什么、分享文案里带了什么,以及哪些字段仍然无法核实。把信息补齐时,必须保留来源,不能用看起来相似的图片或评分填空。今天还完成了 BlackHole 虚拟音频驱动的卸载。它与 KanBox 的工作有一个共同点:操作是否完成,可以检查;用户遇到的问题是否消失,还需要实际使用来确认。下面把已发布、已修改和仍待验证的部分分别记下。166 已进入内部测试,晚间修复还没有随包发布跨夜进行的 KanBox 发布在今天凌晨完成。1.31.0(166)经过本地 2064 项测试,发行签名和发布所需配置检查通过,上传后完成处理,并加入内部测试组。后台显示“正在测试”,没有加入外部测试组,旧构建也保留着。这意味着内部测试员可以通过 TestFlight 更新,但发布过程没有直接操作手机,也没有卸载应用或清除收藏。安装包已经生成,并不等于所有真机体验已经验收。晚上的修复发生在 166 发布之后。到本轮结束,源码回归达到 2079 项测试通过、0 条编译警告,25 条解析金样本保持一致;167 内测包尚未制作或上传。因此,下文的小组件、资料卡和导航改动都属于代码已修、尚待新包真机确认,不能算进已经发布的 166。小组件漏掉了云端内容入库后的刷新小组件的问题出现在新增内容之后:收藏已经进入应用,桌面显示却没有跟着更新。排查发现,iCloud 新内容入库后的刷新没有补齐。数据同步完成和小组件刷新是两个环节,前者成功,并不会自动保证后者发生。这轮修改补上了云端新内容入库后的刷新,同时减少没有变化时的重复刷新。这样既让新内容有机会及时出现在小组件中,也避免每次没有实际变化的同步都触发同样的刷新动作。相关修改已经进入通过回归的源码,但桌面上的实际刷新时机还要在新版真机上观察。今天没有用自动测试的结果代替这一步验收。网易云的歌曲资料与播放限制要分开处理网易云资料卡有两个问题:歌手头像缺失,官方在线播放入口在 KanBox 内无法正常使用。播放路径改为在应用内打开官方页面,并提供站内重试入口,让失败后仍有继续尝试的路径。头像则没有用专辑封面顶替。今天检查的歌曲公开资料中,仍然找不到可核实的歌手头像;封面和歌手头像代表不同对象,不能因为图片能显示,就把字段当作已经补齐。官方页面也不意味着歌曲一定能播放。登录状态和版权限制仍可能影响结果,改过的播放入口需要随新版本在真机上确认。目前可以确认的是代码路径已经调整,不能确认所有歌曲都能在 KanBox 内播放。App Store 资料卡补上图标和评分App Store 链接原来的卡片主要显示应用名称与简介,缺少应用图标、头像区域中的图标,以及评分。对这类链接,图标是辨认应用的重要信息,评分人数也能帮助读者理解评分的参考范围。这轮修改从公开元数据补入应用图标,在头像区域使用应用图标,并展示评分与评分人数。它们仍然是应用资料,不会被写成个人作者的头像或评价。验证时还发现,原有测试样本缺少图标,已经不满足调整后的完整资料判定。补齐样本后重新运行回归,最终通过了前述 2079 项测试。测试样本与新规则对齐了,但真实收藏卡片在新包里的呈现仍待确认。大众点评要保留评分来源,也要认准同一家店店铺卡片原来信息偏少,缺少图片;即使取得地址,也没有方便的地图跳转入口。今天的在线检查从同一家店的公开页面取到了 6 张照片,以及人均、商圈和地址。处理图片时,需要确认它们属于目标店铺,不能把附近店铺的图片混进来。评分遇到了另一种情况:完整分享文案带有精确分数,公开网页却不一定能提供同样精度。改动保留分享文案中的评分,并标明它是非实时评分。重新解析时,如果新结果没有更可靠的精确评分,就保留原来的分享评分及来源标记,不让一次字段较少的抓取把已有信息冲掉。这里只保存有依据的信息。仅有旧网址、没有原始分享评分的条目,无法反推出精确分数;网页显示的星级档位也不能直接当成一个精确小数。公开数据不足时,卡片必须承认这个缺口。导航入口也已加入源码:根据店铺地址跳转地图,提供系统地图,并按安装情况显示相应的第三方地图入口。地址交给地图应用处理,KanBox 不需要为了这次跳转先取得当前位置。地图链接的生成逻辑已经修改,实际跳转、地址识别和导航效果仍要在新版真机上验收。BlackHole 已卸载,杂音是否改善还要听音频方面,用户明确要求卸载不再使用的 BlackHole 2ch,同时保留其他音频设备。检查发现,默认输出仍指向这个虚拟设备,但没有多输出或聚合设备引用它。因此先把默认输出切回原有实体音频输出,再处理驱动,避免移除后仍让系统指向不存在的输出。确认目标后,BlackHole 驱动被移到废纸篓,音频服务重新启动。音频 MIDI 设置中已不再出现 BlackHole,其他驱动的文件校验保持一致,原有音频设备仍在。这是一次可恢复的卸载,没有为了清理一个驱动而改动其他驱动。卸载完成并不证明 BlackHole 就是杂音的原因。之前重启音频服务后出现过改善,但根因没有确认;这次卸载后的声音是否正常,仍需要实际播放检查。今天确认的是设备与驱动状态,不是杂音问题已经彻底解决。留下的判断与下一步今天最值得保留的是三点。第一,资料的完整度要服从来源:分享文案、公开页面和实时数据不是一回事,字段少也不能靠猜测补齐。第二,数据已经入库、界面已经刷新、版本已经发布,是不同的完成条件,需要各自检查。第三,清理或更换一个组件之后,仍要验证用户最初遇到的问题,不能把操作完成当成根因已经消除。KanBox 下一步是在获得打包授权后制作并上传新内测包,再检查云端新增内容触发的小组件刷新、网易云官方页面播放、应用资料卡和店铺地图跳转。对无法核实的歌手头像、缺少精确来源的店铺评分,继续保留缺失或来源说明。音频方面则需要实际播放,确认卸载后的输出与杂音情况。隐私说明本文仅整理当天有记录支持的工作,省略了私人链接、收藏内容、店铺名称与地址、账户信息、设备标识和本地路径。保留公开项目名称、技术术语与必要的版本和测试结果;不包含凭据、私人媒体内容、完整代码或原始日志。
2026-10-10|自然语言编程日记
今天的主要工作仍在 KanBox。凌晨,承接上一轮修复的 1.31.0(166)完成内部 TestFlight 发布;到了晚上,实际使用又暴露出几处问题:新增内容没有及时出现在小组件里,歌曲、应用和店铺的资料卡也缺少一些本该显示的信息。
这些问题有不同的原因。小组件漏了云端入库后的刷新,资料卡则要分别处理公开网页能提供什么、分享文案里带了什么,以及哪些字段仍然无法核实。把信息补齐时,必须保留来源,不能用看起来相似的图片或评分填空。
今天还完成了 BlackHole 虚拟音频驱动的卸载。它与 KanBox 的工作有一个共同点:操作是否完成,可以检查;用户遇到的问题是否消失,还需要实际使用来确认。下面把已发布、已修改和仍待验证的部分分别记下。
166 已进入内部测试,晚间修复还没有随包发布
跨夜进行的 KanBox 发布在今天凌晨完成。1.31.0(166)经过本地 2064 项测试,发行签名和发布所需配置检查通过,上传后完成处理,并加入内部测试组。后台显示“正在测试”,没有加入外部测试组,旧构建也保留着。
这意味着内部测试员可以通过 TestFlight 更新,但发布过程没有直接操作手机,也没有卸载应用或清除收藏。安装包已经生成,并不等于所有真机体验已经验收。
晚上的修复发生在 166 发布之后。到本轮结束,源码回归达到 2079 项测试通过、0 条编译警告,25 条解析金样本保持一致;167 内测包尚未制作或上传。因此,下文的小组件、资料卡和导航改动都属于代码已修、尚待新包真机确认,不能算进已经发布的 166。
小组件漏掉了云端内容入库后的刷新
小组件的问题出现在新增内容之后:收藏已经进入应用,桌面显示却没有跟着更新。排查发现,iCloud 新内容入库后的刷新没有补齐。数据同步完成和小组件刷新是两个环节,前者成功,并不会自动保证后者发生。
这轮修改补上了云端新内容入库后的刷新,同时减少没有变化时的重复刷新。这样既让新内容有机会及时出现在小组件中,也避免每次没有实际变化的同步都触发同样的刷新动作。
相关修改已经进入通过回归的源码,但桌面上的实际刷新时机还要在新版真机上观察。今天没有用自动测试的结果代替这一步验收。
网易云的歌曲资料与播放限制要分开处理
网易云资料卡有两个问题:歌手头像缺失,官方在线播放入口在 KanBox 内无法正常使用。播放路径改为在应用内打开官方页面,并提供站内重试入口,让失败后仍有继续尝试的路径。
头像则没有用专辑封面顶替。今天检查的歌曲公开资料中,仍然找不到可核实的歌手头像;封面和歌手头像代表不同对象,不能因为图片能显示,就把字段当作已经补齐。
官方页面也不意味着歌曲一定能播放。登录状态和版权限制仍可能影响结果,改过的播放入口需要随新版本在真机上确认。目前可以确认的是代码路径已经调整,不能确认所有歌曲都能在 KanBox 内播放。
App Store 资料卡补上图标和评分
App Store 链接原来的卡片主要显示应用名称与简介,缺少应用图标、头像区域中的图标,以及评分。对这类链接,图标是辨认应用的重要信息,评分人数也能帮助读者理解评分的参考范围。
这轮修改从公开元数据补入应用图标,在头像区域使用应用图标,并展示评分与评分人数。它们仍然是应用资料,不会被写成个人作者的头像或评价。
验证时还发现,原有测试样本缺少图标,已经不满足调整后的完整资料判定。补齐样本后重新运行回归,最终通过了前述 2079 项测试。测试样本与新规则对齐了,但真实收藏卡片在新包里的呈现仍待确认。
大众点评要保留评分来源,也要认准同一家店
店铺卡片原来信息偏少,缺少图片;即使取得地址,也没有方便的地图跳转入口。今天的在线检查从同一家店的公开页面取到了 6 张照片,以及人均、商圈和地址。处理图片时,需要确认它们属于目标店铺,不能把附近店铺的图片混进来。
评分遇到了另一种情况:完整分享文案带有精确分数,公开网页却不一定能提供同样精度。改动保留分享文案中的评分,并标明它是非实时评分。重新解析时,如果新结果没有更可靠的精确评分,就保留原来的分享评分及来源标记,不让一次字段较少的抓取把已有信息冲掉。
这里只保存有依据的信息。仅有旧网址、没有原始分享评分的条目,无法反推出精确分数;网页显示的星级档位也不能直接当成一个精确小数。公开数据不足时,卡片必须承认这个缺口。
导航入口也已加入源码:根据店铺地址跳转地图,提供系统地图,并按安装情况显示相应的第三方地图入口。地址交给地图应用处理,KanBox 不需要为了这次跳转先取得当前位置。地图链接的生成逻辑已经修改,实际跳转、地址识别和导航效果仍要在新版真机上验收。
BlackHole 已卸载,杂音是否改善还要听
音频方面,用户明确要求卸载不再使用的 BlackHole 2ch,同时保留其他音频设备。检查发现,默认输出仍指向这个虚拟设备,但没有多输出或聚合设备引用它。因此先把默认输出切回原有实体音频输出,再处理驱动,避免移除后仍让系统指向不存在的输出。
确认目标后,BlackHole 驱动被移到废纸篓,音频服务重新启动。音频 MIDI 设置中已不再出现 BlackHole,其他驱动的文件校验保持一致,原有音频设备仍在。这是一次可恢复的卸载,没有为了清理一个驱动而改动其他驱动。
卸载完成并不证明 BlackHole 就是杂音的原因。之前重启音频服务后出现过改善,但根因没有确认;这次卸载后的声音是否正常,仍需要实际播放检查。今天确认的是设备与驱动状态,不是杂音问题已经彻底解决。
留下的判断与下一步
今天最值得保留的是三点。第一,资料的完整度要服从来源:分享文案、公开页面和实时数据不是一回事,字段少也不能靠猜测补齐。第二,数据已经入库、界面已经刷新、版本已经发布,是不同的完成条件,需要各自检查。第三,清理或更换一个组件之后,仍要验证用户最初遇到的问题,不能把操作完成当成根因已经消除。
KanBox 下一步是在获得打包授权后制作并上传新内测包,再检查云端新增内容触发的小组件刷新、网易云官方页面播放、应用资料卡和店铺地图跳转。对无法核实的歌手头像、缺少精确来源的店铺评分,继续保留缺失或来源说明。音频方面则需要实际播放,确认卸载后的输出与杂音情况。
隐私说明
本文仅整理当天有记录支持的工作,省略了私人链接、收藏内容、店铺名称与地址、账户信息、设备标识和本地路径。保留公开项目名称、技术术语与必要的版本和测试结果;不包含凭据、私人媒体内容、完整代码或原始日志。