苹果以使用辅助功能API为由拒绝了我们的听写应用
摘要
苹果拒绝了开发者Mac听写应用WhisperPad的更新,原因是使用了辅助功能API,尽管此前已经获得批准。这导致开发者感到沮丧,因为该应用是为了帮助他手部受伤而开发的。
暂无内容
查看缓存全文
缓存时间: 2026/06/02 15:32
# Apple因使用辅助功能API拒绝了我的听写应用
来源:https://www.mitmllc.com/blog/apple-rejected-my-dictation-app
我构建 WhisperPad 是因为我需要它。2024 年秋天,我打字时手指关节开始疼痛。也许是因为我把大半辈子都花在键盘上,现在该付出代价了:童年玩电子游戏,然后在科技行业工作了十年。整个冬天情况越来越糟,到 2025 年初,我无法长时间连续打字,否则会引发难以承受的疼痛。这是一种渐进式的损伤,没有某个戏剧性的瞬间;只是每天能做的事情在慢慢减少。
这个缩减来得不是时候。我当时正处于工作空窗期,正在思考下一步该做什么,最终决定申请一个人机交互的硕士项目。我最担心的不是能否跟上学习节奏,而是我的双手能否让我足够快地完成作业。
## WhisperPad 的功能(或者说,曾经的功能)
WhisperPad 驻留在你的菜单栏中。按下键盘快捷键,你说话,它就会在你的 Mac 上本地转录你的语音,然后将文本插入到光标所在的任何位置。所有处理都在本地完成,不会发送到任何服务器。如果它完成时你已点击到别处,文本会保存在剪贴板上,你可以粘贴到任何地方。这就是整个应用的全部功能。其目的是让从大脑到电脑的输出过程尽可能减少手部动作。
WhisperPad 在听写时的菜单栏窗口指示器(听写时出现的窗口指示器)。
今年四月,苹果根据准则 2.4.5 拒绝了我 Mac 上听写应用 WhisperPad 的更新。他们的立场是我以非辅助功能用途的方式使用了辅助功能 API。这款应用之所以存在,是因为我的手部受伤了。苹果之前批准了做同样事情的早期版本。但这次他们却没有。
我最初使用的是苹果内置的听写功能,体验却让人特别沮丧。转录结果大致接近但很少完全正确,每次修正都需要重新用键盘操作:删除、重新打字。我为了修复一个本应保护手部的工具,反而再次伤害了手。这正是我想要解决的具体问题:不是“转录我的语音”,而是“转录得足够好,让我不必不断打字修正”。
老实说,我是怎么处理这件事的。我没有做太多市场调研。可能已经有很好的工具了,但大多数都是将音频发送到某个服务器,而我希望有一个不需要这样做的。当我想得到某个东西时,我的第一个问题通常是“我能自己构建吗?”,而不是“能买到什么?”
第一个版本很粗糙,但我每天都用,并不断改进。我和几个同学分享了它,看着他们把它融入到自己的日常工作流程中。看到其他人渐渐依赖它,让我想正式发布它。
## 被拒绝的经历
1.0 版本在冬天发布,可以在 App Store 免费下载。接着我添加了早期用户要求的功能,并决定将其改为付费应用。这个更新就是 1.5 版本。
苹果根据准则 2.4.5 拒绝了它。拒绝的原因特别指向辅助功能权限。WhisperPad 使用该权限将转录文本注入到其他应用中,而苹果的立场是这不是该 API 的允许用途。然而,此前已批准的版本已经在使用相同的权限做完全相同的事情,所以这很难让人接受。
拒绝说明中也有一些合理的反馈。我修复了那些问题,但 2.4.5 的问题才是真正的障碍。于是我提出上诉,解释 WhisperPad 作为一种辅助功能工具在运作,我有重复性劳损,这款应用之所以采用这种文本注入方式,是为了节省像我这样无法承受额外按键次数的人的手部动作。我请求苹果从这个角度考虑。
他们回复说会重新审视。他们告诉我不要在回复链中回复,并表示会回来做出决定。那是 4 月 21 日。
然后就没有消息了。到 5 月 21 日我什么也没听到,于是我发了一封简短、礼貌的便条询问进度。我曾在客服工作过,知道工单可能会被遗漏,我想把它重新推回到处理队列中。
他们很快回复了,但答案又一次是拒绝。
## 做出分拆的决定
第二次拒绝迫使我做出了真正的决定,我想解释一下,因为如果选择错误会更糟糕。
我花了一些时间权衡两个选项:遵守苹果的限制,发布一个符合其规则并在 App Store 上架的应用(牺牲直接粘贴功能),或者通过直接分发来发布 WhisperPad。我决定不能放弃 App Store 的覆盖范围。因此,我将构建一个符合其规则的版本放在 App Store,同时推进直接分发,从而实现我最初想要构建的完整版本。
这就是限制带来的问题。据我所知,苹果的准则旨在管理应用将文本注入到自身以实现辅助功能,而不是注入到其他应用中。这是我的猜测,因为我从未得到过完全清晰的解释。(如果你更了解这条准则并且能纠正我,请联系我——我很想听听。)无论如何,一个应用可以触及系统中所有其他应用,这确实需要谨慎对待,我也明白 WhisperPad 在这条界限上处于一个尴尬的位置。
所以我将 WhisperPad 分拆成两个版本。
Mac App Store 上的版本不自动粘贴。它将转录文本放在剪贴板上,你需要按 Command-V 进行粘贴。这会使核心流程从大约四步增加到六步。听起来不多,对大多数人来说也确实如此。但整个应用的设计目标是为那些需要节省手部动作的人减少手部移动,所以步骤增加 50% 是显著的。这是一个妥协的版本。但它是一个真实、有用的应用,而且出现在 App Store 上,无论是否有辅助功能需求的人都能偶然发现它。App Store 使其可被发现。
而原来的愿景——直接粘贴到光标所在位置——我通过自己的渠道发布 —— 在 App Store 之外。
## 直接发布
在 App Store 之外发布软件意味着要重新构建商店通常为你做的事情。还有新的信任障碍。你需要让人们信任你会通过你自己的网站处理他们的信用卡。
支付方面,我研究了一些选项后选择了 Paddle。更新方面,我使用 Sparkle,这是一个长期存在的框架,用于在商店之外保持 Mac 应用的更新。许可管理通过许可证密钥与一个小型服务器进行检查。这些都不新奇,这是独立 Mac 软件的成熟做法,但对我来说都是全新的,要把它做对需要付出真正的努力。实际上,我将应用分拆成两个独立的构建目标:一个配置为 App Store,另一个用于直接发布。我于 5 月 27 日完成了直接发布管道的连接,那正是我开始写这篇文章的早晨。
## 我的领悟
起初看似障碍的东西,最终变成了一个限制,促使我构建出了一个组织更完善的产品。我现在比三月份更了解自己的构建配置、更新路径和支付流程,因为苹果的“不”迫使我去学习所有这些。苹果的准则有其合理的理由,尽管我希望能我的特定应用能落在界限的另一边。
当一个平台对你说不的时候,你通常有比当下感觉更多的选择。很少是“要么遵守要么放弃”。通常是“在这里遵守,而在别处做更完整的事情”。发布两个版本,每个版本都尽力为其渠道服务,这并不是一次失败。这只是下一项工作而已。
WhisperPad 现已上架 Mac App Store,提供每月 120 分钟的免费额度,这样你可以在付费之前先看看它是否适合你的工作方式。带有完整自动粘贴功能的直接版本,可在 mitmllc.com/whisperpad (https://www.mitmllc.com/whisperpad) 获取。如果你想和我聊聊,我是 Rene Zelaya,你可以通过 [[email protected]](mailto:[email protected]) 联系我。
相似文章
Apple 新 SpeechAnalyzer API 与 Whisper 及前代产品的基准测试对比
Apple 的新 SpeechAnalyzer API 在英语设备端转录的准确性和速度上,显著优于其前代 SFSpeechRecognizer 和 OpenAI 的 Whisper 模型,该基准测试在 M2 Pro 机器上进行。新 API 在清晰语音上的词错误率为 2.12%,而 Whisper Small 为 3.74%,且运行速度快三倍。
Zen Whisper
Zen Whisper 是一款 Mac 应用,提供设备端听写功能,可输入到任何应用中。
开发了一款通过助听器播报提醒的App——作为日常使用者自述
一位佩戴助听器的开发者开发了一款免费iOS应用,可将语音提醒直接传输至蓝牙助听器,支持语音输入、处方扫描和每日简报功能。
@dps: 我输入电脑的文本超过一半现在是通过Meta AI Mac应用进行听写的 - 已经迅速变得不可或缺…
Spencer Barnett 宣布推出 Meta AI Mac OS 应用,突出其听写功能,允许在电脑任何位置进行高精度语音输入。
Apple 不让我展示我的应用
一位开发者讲述了 Apple 的 App Store 如何因为截图没有展示实际使用中的应用而拒绝了他们的更新,并讨论了由于大量 vibe-coded 应用的涌现而导致的审核流程压力日益增大。