Apple 收紧全磁盘访问:让 AI 助手成为用户可以放心拒绝的产品
从 Apple 10 月 2 日公告出发,帮助创始人设计更小的文件访问范围、说清权限用途,并验证拒绝授权、撤销访问与删除数据的真实行为。
10 月 2 日,Apple 宣布将为 macOS 的全磁盘访问(Full Disk Access)增加控制,要求用户通过更明确的操作,才能把这种范围很广的权限交给应用。Apple 直接提到越来越自主的 AI Agent,并提醒:这类访问可能暴露文件、邮件、消息、浏览历史,也可能影响通信另一方的隐私。这里公布的是调整方向,尚不是实施时间表;最终界面、上线日期和支持的系统版本均未列出。依据见 Apple 原公告。
对桌面 AI 助手的创始人而言,眼前需要决定的是:用户完成第一个有用任务,真的需要这么大的权限吗?产品还没展示价值,就要求查看大量个人资料,会让用户在不了解风险时作出决定。权限申请本来过宽,再多解释文案也无法补救。
本文面向非技术创始人、准备增加桌面端配套程序的 AI app builder 用户,以及验收外包实现的小团队。你将得到一张任务与文件范围的决策表、一个完整的引导案例、一份权限说明模板,以及拒绝和撤销授权的验收方法。核心判断是:第一个有用任务,应当使用能够真正执行的最小文件边界;用户说“不”之后,产品应进入诚实、仍然可用的状态。 这是我们提出的产品设计流程,并非对 Apple 未来控件的实测,也不指控某款助手违反了这些要求。
1. 把已宣布的变化与今天能做的决策分开
Apple 将全磁盘访问描述为与备份等工作流相关的特殊机制,并承诺增加控制。公告没有禁止桌面 Agent,也没有证明所有获得广泛权限的应用都会读取全部可访问文件。技术能力、实际行为和用户理解,是三件不同的事。对外沟通和分析竞品时,都应保留这一区别。
这些未知项会直接影响产品决策。不要围绕想象中的新按钮重做引导,不要告诉客户某次更新已经解决风险,也不要在兼容性承诺中加入未经证实的 macOS 版本。可以指定负责人跟踪具体实施信息,同时先改善现有产品。这些改善并不依赖新系统界面的最终样子。
先列出产品卖点中最重要的三个任务。逐项问清:助手必须读什么,必须改什么,以及下次是否需要在用户不重新选择资料的情况下继续访问。“帮我处理工作”太笼统;“总结我选中的三个 PDF”,才足以与具体权限机制对照。
接收上传文件的网页应用,与原生桌面辅助程序有不同的数据入口。网页产品不能借用操作系统权限术语,来描述自己的云端数据保留规则。如果 AI builder 目前只生成浏览器应用,应当用本文评估计划中的原生配套程序或集成,而不是给网站添加一个实际上不存在的“全磁盘访问”设置。
2. 评审原型前,先说清权限术语
全磁盘访问是一项广泛的系统权限,与“选择一个文件”不同。应用沙盒(App Sandbox)用于约束 macOS 应用的能力;Apple 的安全概览解释了为什么能力限制也能减少软件被攻陷后的危害。“沙盒 AI”这类营销标签,无法说明究竟约束了哪个组件,又有哪些例外。 Entitlement,亦即应用声明的能力项,与用户选择文件后取得的访问权也应分开理解。Apple 的 macOS 文件访问文档区分只读与读写能力,解释所选文件夹内的递归访问,以及用于持久访问的书签。同一文档也指出,其他系统保护仍可能阻止文件访问,代码不能自行赋予全磁盘访问权限。 安全作用域书签(security-scoped bookmark)可以让应用在重启后继续访问某个已选资源,并不代表每次启动都有一轮新的用户决定。Apple 的 NSURL 文档说明了这种持久性,也说明应如何开始和结束安全作用域资源访问。创始人需要问的是:“选一次”意味着“只用一次”,还是“以后持续监测”?界面必须把这个歧义消除。 撤销停止某项权限或产品连接;删除按照明确的数据生命周期移除已保留资料。两者可以同时发生,但不是同一个操作。即使应用无法再访问原文件,之前提取的文字或生成的摘要仍可能存在。任何权限术语本身,都不能证明这些副本已经消失。请团队演示实际行为,不要只选一个最让人安心的词。3. 围绕具体任务划边界,不要围绕整台电脑
讨论授权转化率之前,先填下表。这里列的是建议评估的产品选择,并不表示所有开发框架都自动支持每一种边界。
| 客户任务 | 优先评估的起点 | 用户应当理解的范围 | 团队必须停下来重审的情况 |
|---|---|---|---|
| 总结选中的文档 | 明确选择文件;机制支持时采用只读 | 包含哪些文档,在哪里处理 | 辅助程序扫描了无关位置 |
| 回答一个项目的问题 | 选择项目文件夹,说明递归范围 | 子文件夹及后来加入的文件可能被纳入 | “一个项目”暗中包含外部链接资料 |
| 改写文档 | 读取所选输入,另存新草稿 | 原文件与建议输出分开 | 读取请求悄悄获得了覆盖原文的能力 |
| 监测文件夹里的新资料 | 明确的持久访问与可见暂停入口 | 当前会话结束后仍会继续监测 | 用户尚未选择监测,后台就开始读取 |
| 搜索 Mac 上跨位置的受保护资料 | 证明较小范围无法完成任务后,再评估广泛访问 | 系统真实能力与应用自身较窄的使用规则 | 将广泛能力说成单文件夹权限 |
希望访问的范围,与系统真正能够约束的范围,必须分别记录。团队可能说“我们只搜索 Projects”,但原生辅助程序其实持有更广的权限。这可以是一项真实的应用策略,却不等于操作系统限制。请把差异写下来,再作产品决定。不要让一个狭窄标签遮住较大的技术能力。
文件夹选择也需要认真设计。Apple 文件访问指南说明,访问可能延伸到嵌套文件夹。项目目录里可能有导出的消息、凭证、客户合同,也可能出现别人后来加入的共享文件。索引之前,让用户查看所选范围并排除不需要的类别。
请工程人员在支持的系统版本上检查符号链接、别名、移动后的文件、辅助进程和云端占位文件。本文不假设这些情况有统一结果。
AI 场景还有一个特别重要的最小权限原则:读取能力与执行动作的权力,应分别评审。OWASP 的过度代理权限指南将不必要的工具、权限和自主性列为不同风险来源。研究助手不应仅仅因为连接器附带删除能力,就获得删除工具。文档中的指令,也不应扩大助手原本获准访问的资源范围。
4. 先展示价值,再申请持久访问
让第一个有用结果来自用户主动发起的有限任务。示例工作区可以演示导航,而无需接触个人资料;随后,用户选择文件,便能看到一个基于熟悉文档的回答。只有当用户选择持续性任务时,持久文件夹访问才变得相关。每一步都应展示自身的收益和代价。
Apple 的隐私设计指南建议在确有需要时请求访问,并解释具体用途。这支持结合任务情境申请权限,却不证明这种引导一定能提升你产品的转化率。应当把转化当作实验,同时评估用户是否理解,以及拒绝后的体验。
不要在欢迎流程里连续申请六种权限,每一种都写“改善体验”。可以将请求放到相应功能旁:“选择要总结的文档”或“设置持续项目搜索”。用户应该能够预测接下来发生什么。如果下一步会打开系统选择器或“设置”,就明确说明。不要模仿系统批准界面,也不要让应用内按钮看起来像已经赋予了操作系统权限。
这里有一个重要的界面边界。示例、上传和受限模式,应放在普通的功能选择页。Apple 对紧接系统授权弹窗之前的自定义说明页,另有具体结构要求,包括单一的继续操作。不能把一个多选项产品选择页搬到这种说明页里,再称为 Apple 推荐模式。请设计人员核对实际使用的平台流程。
持续性任务还必须解释:窗口关闭后会怎样?辅助程序继续扫描吗?退出应用后停止,还是登录时运行?提取的内容会上传吗?这些答案应当在用户决定之前可见。如果团队无法用两句话准确说明后台生命周期,这个功能就还不适合进入新手引导。
5. 用权限说明模板,暴露真正的取舍
下面这份可复用材料用于产品评审,不是 Apple API 的配置格式。写简短的用户文案之前,请与工程和运营一起填完。任何空白,都代表尚未完成的设计决定。
| 字段 | 必须回答的问题 | 应附的证据 |
|---|---|---|
| 用户目标 | 启用的是哪个具体任务 | 任务入口原型 |
| 原生能力 | 应用及辅助程序在技术上可以访问什么 | 构建配置与支持版本测试 |
| 产品范围 | 产品实际会使用哪些文件 | 已执行的策略与排除路径测试 |
| 读写行为 | 读取、另建输出、修改还是删除 | 每种启用操作的演示 |
| 持续时间 | 单次任务、会话、持续监测或其他明确周期 | 重启与后台行为 |
| 处理位置 | 设备、指明的云服务,或已说明的混合路径 | 使用合成资料的请求轨迹 |
| 保留的衍生数据 | 文字、摘要、向量、日志、导出与备份 | 标有生命周期负责人的存储清单 |
| 拒绝后的行为 | 拒绝权限后哪些功能仍可使用 | 完整拒绝流程录像 |
| 断开连接后的行为 | 停止什么,保留什么 | 在途任务与排队任务测试 |
| 删除后的行为 | 删除什么、何时完成、有哪些例外 | 删除结果记录与恢复路径检查 |
随后,依据模板写用户文案。对于一个假设的文件夹搜索应用,可以写:“选择要搜索的项目文件夹。我们会纳入子文件夹,并在你移除项目之前保留索引。回答由我们的云服务生成。”这比“解锁你的 AI 助手”更清楚。但如果实际实现会无限期监测,或者调用了别的服务商,这段文案同样不可接受。文案应描述行为,不能替代行为。
如果应用需要的系统能力比产品使用范围更广,就同时披露这两层。解释为什么较小的机制无法完成任务,以及应用如何限制自身使用。找不到有说服力的解释,就选择较小的功能。缩减承诺可能有商业代价,但通常好过让客户接受一项团队无法解释的能力。
资料涉及他人通信时,不能只看设备所有者是否点了按钮。Apple 公告明确提出了通信另一方的隐私问题。创始人还应决定:哪些资料不宜采集,分享如何控制,团队管理员能否暴露别人的内容。本文并不为这类处理确立法律依据,而是在指出一个个人设备授权无法独自解决的产品问题。
6. 看一个完整的拒绝与恢复案例
设想 CedarFiles:一家两人设计咨询团队使用的项目问答助手。它最初承诺回答用户所选客户项目的问题。Maya 选择了一个包含提案、会议笔记和交付物草稿的文件夹。CedarFiles 通过桌面辅助程序提取文字,再调用云端模型生成回答。这是设计示例,不是真实客户报道或实测结果。
在一个有用的初始版本里,Maya 先选择三个文件。回答引用这些输入,并展示使用了哪些文档。应用把持续文件夹搜索作为单独功能提供。启用之前,Maya 知道嵌套文档也会被纳入,提取文字会发给已指明的处理服务。她也可以继续逐次选择文件。
现在加入失败情况:所选文件夹里有一个无法读取的客户档案。应用必须说明限制,让可读子集保持清晰可辨。它不能把全磁盘访问当作通用修复方案悄悄申请,然后把回答呈现得像已经搜索全部资料。如果任务确实需要那个档案,就应说明证据不完整,并邀请用户主动选择更小范围的相关资料。
接着,Maya 拒绝持久访问。CedarFiles 保留已经完成的草稿,关闭持续索引,并在下次提供单次选择。它不会反复打开“设置”,不会把整个账号标为故障,也不会重启后重新启动遭拒的流程。
受限模式确有代价:不能承诺自动覆盖后来加入的文档。这一限制应当体现在界面和付费方案说明中。
最后,扫描尚在进行时,Maya 断开项目连接。团队需要决定如何处理在途工作,防止排队任务再次取得访问,并识别已保留副本。她已下载的导出文件,与服务器上的索引不是同一回事。“项目已断开;以前生成的回答会保留,直到你删除”,可能是一种诚实状态。只有相关删除流程确已完成,并且产品能证明覆盖范围时,才适合说“全部移除”。
7. 把撤销设计成用户看得见的过程
Apple 的 Files & Folders 支持说明介绍了如何在系统设置中调整应用访问;平台安全指南说明了受保护文件访问与用户控制。产品帮助文档应当包含这些系统机制。但它们没有描述如何删除 AI 应用以前生成的衍生数据。
一个有用的产品流程,需要分别显示:停止新采集、断开数据源、根据请求删除活跃衍生数据,以及披露保留例外。进度必须准确。删除尚在排队,就显示“已申请删除”,而不是“已删除”。如果服务商有独立的数据保留周期,应说明限制,不能承诺所有系统中的资料瞬间消失。
已经开始的任务,需要明确策略。权限变化之前,请求可能已离开设备。团队应决定是隐藏返回的回答、丢弃内容,还是按照另行同意的历史设置保留它。用合成数据和故意延迟的响应来测试。关键验收条件是:系统不能把被中断的任务表现为一次新获授权的访问。
备份是另一个边界。仅从实时索引删除条目并不够:恢复旧备份后,资料可能重新进入搜索。删除或排除记录必须以恢复流程能够遵守的方式保存。小团队不一定立刻需要复杂系统,但必须有明确的恢复路径,以及与承诺一致的测试。
保留时间也有取舍。很短的期限可以简化部分删除问题,却可能损害有用历史,或增加支持排查难度。较长保留能改善连续性,但同时增加暴露范围和运营责任。可行时,让客户选择有实际意义的历史设置。不要因为初版数据库方便保存,就把持久保留说成无法避免。
8. 测试成功演示看不出的行为
在干净测试账号中,使用合成文件跑下面的验收。这里是建议测试,并非已经通过的结果。记录应用构建、辅助程序版本、macOS 版本、所选路径、处理配置、观察结果,以及各项修复的负责人。原生辅助程序或索引系统变化后,应复用这些用例。
| 测试 | 预期产品行为 | 应保存的证据 |
|---|---|---|
| 拒绝第一次请求 | 清楚解释,并提供有限范围的替代方式 | 录像及无意外读取的观察记录 |
| 选择一个文件,旁边放私人对照文件 | 只有所选输入进入任务 | 请求与索引中的合成标记检查 |
| 选择含嵌套敏感测试文件的目录 | 范围已说明,配置的排除规则有效 | 枚举与排除结果 |
| 遇到不可读文件 | 覆盖缺口可见,不自动提高权限 | 回答与访问错误记录 |
| 单次使用后重启 | 没有未经承诺的后台监测 | 重启后的辅助程序活动 |
| 延迟扫描期间断开连接 | 新读取与排队工作按既定策略停止 | 数据源访问和请求完成时间线 |
| 删除项目后恢复备份 | 已删资料不重新进入活跃搜索 | 恢复和查询记录 |
| 打开含有“读取其他位置”指令的文档 | 内容不能扩大已批准范围 | 被阻止的请求或工具轨迹 |
| 在应用外关闭系统访问 | 产品发现失败并显示真实状态 | 重启与数据源状态行为 |
合成标记,就是放在对照文件中的独特字符串,便于发现意外纳入。它不能证明不存在任何泄漏;最终回答里没有该字符串,更不能说明问题已经排除。还应检查中间请求、已保留索引和相关元数据,且不要使用真实客户内容。请工程人员解释测试能观察什么,以及哪些路径仍不可见。
不要把少量通过的用例变成普遍安全评分。它们只能证明特定受支持路径上的行为。高权限辅助程序、扩展、企业部署设置和系统变化,都可能带来不同结果。维护支持配置清单;团队未测试的范围,就不要声称已经覆盖。
9. 衡量用户是否知情,而不只是是否授权
单独看权限接受率并不可靠。模糊请求可能让更多人批准,却降低了知情程度。Apple 的设计原则强调清楚说明理由、透明的数据用途、反馈和恢复。创始人的实验应当检查用户是否理解取舍,而不只是是否点下按钮。
在小规模主持式用户研究中,请参与者说出:应用可以访问哪些位置,处理是否离开设备,什么会保留,以及断开连接会怎样。在实际任务结束后再问,不要先教给他们正确术语。按功能与文案版本记录误解。这里提出的是研究方法,我们没有实施研究,也没有证明它能提升转化。
可以跟踪不同权限模式下完成的有用任务、拒绝后放弃使用的情况、重复申请、资料覆盖错误、断开完成状态,以及删除失败。不要为了做一张“信任仪表盘”,额外采集文档名称或内容。尽可能汇总运营事件;支持排查中捕获内容,应是另一个明确、主动的选择。
较小权限模式可能自动覆盖更少,却更容易让人理解;较广模式可能完成更多任务,同时增加支持与治理成本。扩大请求之前,应明确比较这些结果。如果用户持续把后台监测误解为单次读取,就修改功能和界面,不要仅把问题归结为“用户需要教育”。
10. Apple 细节尚未公布时,决定先上线什么
对于选中文档总结和项目范围问答,应先上线经过测试、能够完成有价值任务的最小模式。持续监测保持可选且可见。如果外包团队说广泛访问必不可少,请他们演示:哪个具体任务在较小权限下失败,以及评估过哪些有文档支持的替代机制。单纯为了架构方便,并不足以解释为什么要让用户承担更大暴露。
真正跨系统的任务,可能离不开广泛访问。备份和完整本地搜索产品,无法总是作出与三文档总结工具相同的承诺。此时需要更充分的说明、可信的应用限制、看得见的暂停与撤销行为,以及已测试的数据保留处理。拒绝可能让核心任务无法使用,就直说;只有确实存在演示或其他有用模式时,才提供这些替代方式。
下一个工作日,可以为一个高价值任务填完权限说明模板,重做普通功能选择页,并测试拒绝和在途撤销。如果团队无法展示访问范围或保留的衍生数据,就暂缓广泛模式。对外只发布观察结果能够支持的承诺。等 Apple 给出上线细节后,再单独更新兼容性和系统操作说明,不要将它们与产品本身的承诺混为一谈。
这则公告提供的机会,是让用户与产品建立更清楚的关系。助手可以先给出有限范围的有用结果,再准确解释下一项能力,并让撤回选择真正生效。即便未来 macOS 控制尚不明确,小团队今天也能作出这个具体决定。