iOS 智能找菜:真机人工验收
此文保留 #181 最初的真机验收方案,可供后续真实使用复核,并复用 #174 的重叠项。维护者随后明确确认「用模拟器验收即可」,因此本表不再作为本次 #181 关闭门槛;最终模拟器结果见收尾记录。下表仍如实保留未执行状态,模拟器、注入传输与会员 HTTP 结果不能填写为真机或个人 Key 真实调用通过。
候选与准备
产品源码基线为 691cc38fe6abc38e3ef9d112139726788341d630;本地候选 e988475ffe3f9059049c3336088a26da55ee640b 仅把构建号改为 13,已生成 2.0.0 (13) 的归档/仅内部测试 IPA,尚未上传或安装。包散列及签名证据见候选盘点。App 数据版本应为 1878cc5772dc;饮食标注版本 ead74d1c15c9,标注格式/政策均为 2,开放控制体重 10 道、减少添加糖 12 道、均衡搭配 36 道。SearchIntent 格式/政策仍为 1,不能与饮食标注版本混用。
已安装构建 12 使用保留契约 faf919fc0041,可以单独记录旧客户端结果,但不能填写为新版候选使用通过。准备本地测试安装或获准的新 TestFlight 分发时,先核对实际源码、包散列、App 版本/构建号及“我的 → 关于云食册 → 数据版本”。发布准备、上传、分发和手机安装分别记录;本表不授权上传或对外分发。
- 每台设备记录机型、系统、候选、日期和执行人;只有执行人实际听读并反馈,才填写真实 VoiceOver 结果。本轮发现的实体设备是 iPhone 15 Pro/iOS 27.0.1;实体 iPad 覆盖仍缺。
- 使用空闲设备,先记录本餐筛选、保存的目标、AI 通道、字号、外观、VoiceOver 和网络状态,结束后恢复。保护已有菜谱、账号与 Key,不卸载、清库或为验收删除已有 Key。
- 个人 Key 由持有人直接在“预览条件 → AI 设置”中配置,记录仅写“已保存/可用/未验证”。不提交 Key、登录令牌、完整账号、实际私人饮食文本或带敏感内容的截图;验收只用下表的普通样本。
- 只做必要调用:成功一次、在途取消一次;断网或失败恢复按实际发生记录。错过取消窗口写未覆盖,不通过循环付费请求制造结果,不用假 Key 替换原 Key。
VoiceOver 与本地流程
在 iPhone/iPad 各执行一遍;大字号深色可复用同一轮。先保留一个原有忌口,便于核对确认前后的筛选。焦点记录使用实际经过的顺序,不预填为源码顺序。
| 编号 | 操作 | 通过标准 | 本轮结果 |
|---|---|---|---|
| V1 进入预览 | “找菜”输入“鸡蛋和西葫芦,不要辣,想减少添加糖”,打开“预览条件” | 预览标题、输入、取消/应用和本地识别可达;当前筛选未提前改变 | 未执行 |
| V2 完整朗读与焦点 | 开启 VoiceOver,逐项扫过标题、原句、识别标签、可编辑条件、说明和操作;记录实际顺序 | 食材、忌口、不吃辣、厨具、做法、难度与目标的当前值/无新增值可读,无漏项、困住焦点或无意义图标;若有加载/错误,状态可感知 | 未执行 |
| V3 编辑与移除 | 听读“移除食材鸡蛋”“移除不吃辣”等按钮并双击;在编辑页重新添加鸡蛋,修改一个条件后返回 | 名称和“仅从本次草稿移除”提示完整;只改变目标标签,移除后的焦点仍可继续操作;编辑页返回与最大字号滚动正常,原餐次未改变 | 未执行 |
| V4 待确认项 | 改写为“鸡蛋,十分钟做好”,用键盘“完成”结束输入后重新识别 | 旧预览失效,待确认内容及“仅应用上方条件,待确认项本次不生效”可读;默认不能应用,明确选择后才可应用已识别条件,不生成十分钟或难度保证 | 未执行 |
| V5 取消与确认 | 先取消整个预览并核对原筛选,再重新打开有效预览并“应用条件” | 取消不写筛选;确认后才合并,已有忌口保留;关闭后的焦点落在可继续使用的找菜界面 | 未执行 |
| V6 结果与来源 | 在目标交集下进入结果及 333 的已核对图文,阅读理由、范围、来源,再返回 | 只显示实际目标池与其他条件的交集;理由与条件一致,来源、返回和工作台可达;空交集不自动放宽筛选 | 未执行 |
个人 Key 与恢复
先确认 AI 通道确为“使用自己的 DeepSeek Key”。会员可用状态或会员请求结果不能替代本表。成功、取消和失败项目可以与 V1–V6 共用同一候选,但分别记结果。
| 编号 | 操作 | 通过标准 | 本轮结果 |
|---|---|---|---|
| K1 设置与发送确认 | 查看 Key 状态、选择个人通道,返回预览并点“智能找菜 · DeepSeek”;先取消发送对话框,再重开确认 | Key 输入为保密字段,保存/切换通道不发送;对话框说明发送范围及个人账号费用;取消不请求、不改筛选 | 未执行,Key 可用性待持有人确认 |
| K2 真实调用 | 使用普通样本“鸡蛋和西葫芦,不要辣”,确认发送一次 | 实际个人路径成功,显示模型来源并通过本机校验;结果仍是可编辑草稿,应用前原筛选不变;记录时间、候选和脱敏结果,不保存原始请求/响应 | 未执行 |
| K3 在途取消与新草稿 | 发起一次必要调用,加载期间点“取消请求”,改写为“番茄,不要辣”并本地识别;随后等待原请求结束 | 取消后可本地操作,迟到成功/失败不覆盖新草稿,不恢复旧加载状态,不提前写筛选;若响应太快未取消到,准确记未覆盖 | 未执行 |
| K4 断网与恢复 | 设备空闲时开启飞行模式并关闭 Wi-Fi;尝试智能识别,失败后使用本地识别、编辑/取消;恢复原网络 | 有可理解错误且可恢复,本地搜索与原筛选可用,不泄露上游响应或凭据;恢复网络后能继续使用;避免无必要重复成功计费调用 | 未执行 |
| K5 保存边界 | 退出设置再返回并重启 App,核对仍为“已保存”;结合源码及有限脱敏诊断核对保存与传输范围 | Key 仅在本机不可同步 Keychain,普通设置仅保存通道;不进入同步/导出/普通日志。界面“已保存”不能独立证明全部隐私边界 | 源码已核对,真机未执行 |
不主动发送非法模型响应或人为调配额来制造生产失败。非法结构、请求失效与迟到响应的已有自动化按原证据复用;若真人操作发现缺陷,记录最小复现并修复后只重验受影响项。
#174 复用与记录
V2–V6 可关联 #174 A3/A6 的目标交集、大字号与 VoiceOver;K4 可关联 A7 的离线正文。图片实际失败仍须在未缓存图片时单独观察,缓存图片显示成功不能算通过;恢复网络后重开,保护正文和返回操作。冷启动和目标恢复按 A5/A8 另记,维护者对 36 道标注与文案的内容复核独立保留,不能由交互验收代签。
每项填写通过/失败/未执行,包含设备、系统、候选源码及包散列、App/数据版本、执行人、实际焦点或失败步骤、证据位置和恢复结果。发现手机占用、缺 Key、缺候选或缺实体 iPad 时填具体依赖;不要把“未执行”写成产品失败。
如果后续重新要求完整真机验收,仍需 V/K 及约定设备覆盖取得真实结果、失败已处理、同一候选与发布证据一致。当前全部人工项继续待验收;它们不因本次按维护者接受的模拟器范围关闭 #181 而自动变为通过。