← 返回信息流
AI 资讯Hacker News·2 天前

Apple 因使用辅助功能 API 拒绝我的语音输入应用

原标题:Apple rejected my dictation app for using the accessibility API

速览

一位开发者分享其开发的语音输入应用被 Apple 拒绝上架的经历。拒绝原因主要涉及应用使用了 Apple 的辅助功能 API(Accessibility API)。这一案例引发了关于 Apple 对第三方应用权限管控及审核标准的讨论。

AI 深度解读

Apple 为何拒绝我的语音输入应用?一个独立开发者的突围实录

背景

2024 年秋季,开发者 Rene Zelaya 的手指关节开始出现疼痛,这源于他早年沉迷电子游戏以及随后十年在科技行业长期敲击键盘所积累的劳损。随着冬季过去,这种进行性损伤在 2025 年初加剧,导致他无法长时间打字而不引发难以忍受的疼痛。

正值他处于职业空窗期,并计划申请人机交互(HCI)硕士项目时,这一健康危机变得尤为棘手。他担心的并非智力上的跟不上,而是双手是否还能支撑他完成足够的文书工作以跟上申请节奏。为了解决这一痛点,他开发了一款名为 WhisperPad 的 Mac 应用程序。

核心内容

WhisperPad 的功能与设计初衷 WhisperPad 是一款驻留在菜单栏的 Mac 应用。其核心逻辑极简:用户按下快捷键说话,应用会在本地将语音转录为文本,并直接插入到光标所在的输入框中。整个过程不向服务器发送任何数据。如果用户在转录完成前切换了窗口,文本会保留在剪贴板中供手动粘贴。 Zelaya 开发这款应用的初衷并非仅仅为了“转录声音”,而是为了解决一个更具体的问题:现有的 Apple 内置语音输入虽然接近准确,但错误率导致用户必须频繁使用键盘进行修正,这反而加重了手部负担。WhisperPad 旨在通过高精度的本地转录,最大限度地减少手部动作,特别是针对像他一样患有重复性劳损(RSI)的用户。

与 Apple 的冲突:Guideline 2.4.5 2025 年 4 月,Zelaya 提交了 WhisperPad 1.5 版本的更新,却遭到了 Apple 的拒绝。拒绝理由依据的是 App Store 审核指南 2.4.5 条,即“滥用辅助功能 API(Accessibility API)”。 Apple 认为,WhisperPad 使用辅助功能 API 向其他应用程序注入文本的行为,不属于批准的辅助功能用途。这一决定让 Zelaya 感到难以接受,因为早期版本(1.0)在完全相同的功能和权限下曾获得过批准。

申诉与僵局 Zelaya 在申诉中解释,WhisperPad 本质上是一个辅助工具,其直接注入文本的设计是为了节省那些无法承受额外按键次数的用户的体力。Apple 审核团队表示会重新审视,并告知 Zelaya 不要在讨论线程中回复。然而,直到 5 月 21 日,Zelaya 未收到任何消息,他在礼貌询问后再次收到了拒绝通知。

战略调整:双版本策略 面对第二次拒绝,Zelaya 面临两个选择:要么妥协,发布符合 Apple 规则但功能受限的版本;要么放弃 App Store,通过直接分发(Direct Distribution)发布完整功能版。 他意识到 Apple 的指南初衷可能是限制应用侵入自身系统内的文本注入,而非针对跨应用注入。但他也承认,允许应用向系统中所有其他应用注入文本确实存在安全风险。 最终,他决定采取“双版本”策略:

  1. App Store 版本:遵守规则,不自动粘贴。转录后的文本仅复制到剪贴板,用户需手动按 Command-V 粘贴。这使核心操作流程从 4 步增加到 6 步。虽然对于大多数用户影响不大,但对于目标用户(手部受伤者)而言,操作成本增加了 50%。但这保留了 App Store 的 discoverability(可发现性)。
  2. 直接分发版本:在 App Store 之外发布,保留“自动粘贴到光标处”的完整功能。

直接分发的技术实现 脱离 App Store 意味着开发者需要自行构建原本由平台提供的信任和服务基础设施。Zelaya 为此做了以下工作:

  • 支付处理:经过调研,选择了 Paddle 作为支付网关,以处理用户信用卡支付。
  • 自动更新:使用了成熟的开源框架 Sparkle,用于在应用商店之外保持 Mac 应用的更新。
  • 授权管理:通过一个小服务器验证 License Key 来处理许可证。
  • 构建配置:将代码库 Fork 为两个独立的构建目标,分别配置 App Store 和直接发布环境。 他在 5 月 27 日完成了直接发布管道的搭建,并正式推出了两个版本。

关键要点

  • 痛点驱动创新:WhisperPad 的诞生源于开发者个人的健康危机(手部劳损),旨在解决现有工具(如 Apple 内置听写)在准确性不足导致频繁手动修正的问题。
  • 审核指南的模糊地带:Apple 的 Guideline 2.4.5 禁止滥用辅助功能 API。Zelaya 认为该指南本意是防止应用侵入自身系统,但 Apple 将其解释为禁止向其他应用注入文本,尽管早期版本曾获批。
  • 合规与功能的权衡:App Store 版本为了合规牺牲了核心体验(从自动粘贴变为手动粘贴),增加了手部受伤用户的使用负担;而完整功能版本则必须脱离 App Store。
  • 独立开发者的技术栈升级:直接分发要求开发者自行解决支付(Paddle)、更新(Sparkle)和授权验证等基础设施问题,这迫使开发者深入理解软件的分发和运维流程。
  • 平台博弈的务实解法:当平台说“不”时,并非只有“服从或退出”两个选项。通过“合规版本上架 + 完整版本直发”的双轨策略,开发者既保留了平台的流量红利,又满足了核心用户的需求。

意义与影响

这一案例揭示了独立开发者与大型平台(如 Apple)之间复杂的博弈关系。它展示了 App Store 审核指南在实际执行中的灵活性与不确定性,以及开发者在面临平台限制时的韧性。

对于 Apple 而言,这一事件凸显了其审核政策在平衡“系统安全/隐私”与“用户便利性/辅助功能需求”时面临的挑战。Guideline 2.4.5 的初衷是保护用户免受恶意软件通过辅助功能接口操控界面的风险,但对于像 WhisperPad 这样真正服务于残障人士或健康受损用户的工具,严格的解释可能构成不必要的障碍。

对于 独立开发者 社区,Zelaya 的经历提供了一条可行的路径:当平台规则与产品核心价值冲突时,通过构建独立的分发渠道(Direct Distribution)来保留核心功能,同时利用 App Store 进行市场教育和获客,是一种务实且可持续的策略。这也促使更多开发者关注支付、更新和授权等后端基础设施的建设,从而减少对单一平台的依赖。

目前,WhisperPad 的 App Store 版本提供免费试用(每月 120 分钟),而完整自动粘贴版本可在其官网 mitmllc.com/whisperpad 获取。

查看原文 →mitmllc.com