·7 分钟阅读

Otterdock 隐私:权限、本地数据与联网说明

两个版本各自请求哪些 macOS 权限、为什么;分组和设置存在哪里;四种联网流量(更新、授权、付款、可关闭的使用统计)分别是什么。

Otterdock 把分组留在你的 Mac 上:分组名、项目路径、顺序和设置存在 Application Support(商店版在沙盒容器)里,从不上传。Mac App Store 版除沙盒外不请求任何权限。直下载版只在你开启自定义弹窗或悬停时请求辅助功能权限,不授权也能用。联网只有直下载版的更新检查、授权或购买验证、Creem 结账页,以及可在设置里关闭的使用统计;Mac App Store 1.1.4 起统计默认关闭。

本文目录

程序坞工具离系统很近,问一句「它能看到什么、我的数据去了哪里」很合理。本页是两个版本的完整答案:每一项权限、每一个文件位置、每一种网络请求。内容依据 App 源码和实际发行配置写成;若与 隐私政策 有出入,以隐私政策为准。

各版本的权限

Mac App Store 版直下载版
App 沙盒始终开启无(标准 Developer ID 应用)
辅助功能从不请求仅在你开启自定义弹窗或悬停时请求;可选
文件与文件夹仅限你通过选择器或拖拽添加的项目,使用安全作用域书签你添加的项目;标准文件访问
通讯录、日历、照片、相机、麦克风、定位、屏幕录制不请求,无权限声明不请求
网络仅出站,用途见下相同

直下载版为什么要辅助功能权限。macOS 不允许一个应用改变你点按另一个应用程序坞图标时发生的事。唯一受支持的、能察觉那些点按并知道指针在程序坞上位置的方式,就是辅助功能权限。Otterdock 只用它做两件事:检测自己分组图标上的点按和悬停,以及把原生堆栈压住一瞬间让自己的弹窗出现。它不检查其他窗口、不读文字、不记按键。拒绝或以后在「系统设置 > 隐私与安全性 > 辅助功能」里撤回,直下载版就退回原生堆栈,其他一切照常:全局快捷键、小组件、程序坞同步和分组编辑器都与它无关。三种交互方式及其权限需求见 点击模式与悬停模式。

Mac App Store 版为什么从不询问。它运行在 Apple 沙盒里,沙盒根本不允许观察程序坞。这也是它的分组以原生堆栈打开、Otterdock 不能替你添加程序坞条目的原因;取舍见 直下载版与 Mac App Store 版对比。

什么存在你的 Mac 上,在哪

数据直下载版Mac App Store 版
分组配置(groups.json:名称、项目路径、顺序、图标样式、快捷键、打开方式规则)~/Library/Application Support/Otterdock/相同布局,位于 ~/Library/Containers/ 下的 App 容器内
生成的分组文件夹(作为程序坞堆栈出现的那些)~/Library/Application Support/Otterdock/Groups/容器内
皮肤与缓存的分组图标~/Library/Application Support/Otterdock/Skins/ 与 App 缓存容器内
设置(交互模式、外观、登录时启动)标准偏好设置(fun.savetimefor.otterdock)容器内的标准偏好设置
小组件快照(供小组件扩展读取的分组名、顺序、图标)与小组件共享的 App Group 容器相同
直下载版授权码macOS 钥匙串不适用
Pro 购买不适用Apple 收据,经 StoreKit 验证
统计标识(仅在开启统计时)偏好设置里的随机 ID;关闭统计时重置相同

由此可知两件事。第一,Otterdock 存的是项目的引用,不是副本:分组里一个 2 GB 的视频只是一条路径,删分组永远不会删视频。第二,分组是这台 Mac 本地的。没有 iCloud 或 Otterdock 云同步;设置 > 备份里的导出导入是把分组带到另一台机器的方式。细节与注意事项见 Otterdock 会在不同 Mac 间同步吗。

分组文件夹里是 Otterdock 生成并刷新的替身和链接文件。把它们当作 Otterdock 的东西:Mac App Store 1.1.4 及之后,App 会跟踪自己创建的条目、不动其他内容;但直下载版 1.1.3 同步时会重建文件夹,可能移除你手工放进去的文件。自己的文件放在自己的文件夹里,再作为项目加进分组。

什么会走网络

Otterdock 不是完全离线的应用,说它是会误导你。它发起的连接只有这些:

  1. 更新检查(仅直下载版)。启动时向 releases.savetimefor.fun 请求 Sparkle 更新源,只在你同意后下载更新。Homebrew 用户可以关掉应用内检查,交给 brew upgrade。Mac App Store 版通过 App Store 更新。
  2. 授权验证(直下载版 Pro)。激活、验证或停用授权码时与我们的授权服务器(api.savetimefor.fun)通信,由它转接 Creem。请求携带授权码和一个设备标识,用于执行三台设备的上限。授权码存在你的钥匙串里,Otterdock 第一次读取时 macOS 可能要你输入登录密码;App 会在弹出前先说明。
  3. 购买。直下载版的「购买授权」按钮在浏览器里打开 Creem 结账页;Otterdock 永远看不到你的卡。Mac App Store 版用 Apple 的应用内购买面板。Creem 流程以及什么是「记录商户」见 Otterdock 的 Creem 付款流程。
  4. 使用统计(可选)。开启后,Otterdock 向 TelemetryDeck 和 PostHog 发送事件名(例如 popup.opened、settings.changed)、App 版本和版本类型、一个随机安装 ID,以及与购买相关的事件。从不发送分组名、项目路径、网址、文件内容或授权码。直下载版结账时可能把随机 ID 与你的订单关联,以便我们知道哪些功能促成了购买;设置里的说明写了这一点。

统计的默认状态。Mac App Store 版 1.1.4 及之后:关闭,直到你在设置里开启。直下载版 1.1.3:默认开启,设置 > 使用统计里有开关;下一个直下载版采用同样的默认关闭。关闭后立即停止发送、丢弃排队事件、重置本地 ID。

除此之外不联系网络。从分组打开网页链接只是把网址交给浏览器。

移动、改名或缺失的项目

分组存的是路径,所以移动或改名文件会让那一项失效。在分组里它打不开了;在程序坞堆栈里,macOS 显示的那个替身可能无法解析。解决:打开 Otterdock,删掉该项,从新位置重新添加。分组的其他项目和程序坞图标不受影响。Mac App Store 版还为每项保存一个安全作用域书签;如果 macOS 不再能解析,Otterdock 会请你重新选择文件,这是沙盒在要求重新授权,不是故障。

干净地卸载

  • 直下载版:退出 Otterdock,从程序坞移除分组(编辑器里的「从程序坞移除」,或把图标拖出去),把 Otterdock.app 移到废纸篓,不想保留分组就删掉 ~/Library/Application Support/Otterdock。如果已停用授权,可在「钥匙串访问」里移除它;先停用会释放设备名额。
  • Mac App Store 版:像删除任何 App Store 应用一样删除。macOS 会连容器一起移除。Pro 购买留在你的 Apple 账户里。

两种卸载都不会碰你加进分组的文件。两个版本的完整安装步骤见 如何在 Mac 上安装 Otterdock。

常见问题解答

直下载版为什么要辅助功能权限?

只为了察觉它自己程序坞图标上的点按和指针位置,以便用自己的弹窗取代原生堆栈,以及检测悬停。它不读屏幕、不记键盘、不看其他应用。从不开启自定义弹窗或悬停,它就从不询问。

我的分组或文件会上传到哪里吗?

不会。分组配置是本地文件,Otterdock 只保存文件的路径,不保存文件本身。分组内容不会发送到任何服务器。

Otterdock 会读通讯录、日历或浏览记录吗?

不会。App 没有通讯录、日历、照片、相机、麦克风或定位的权限声明,也从不请求这些权限。

开启使用统计后会发送什么?

事件名(比如建了一个分组、打开了弹窗)、App 版本和版本类型、一个随机安装 ID,以及与购买相关的事件。不含分组名、文件路径、网址或授权码。开启前设置里写的就是这些。

能完全离线使用 Otterdock 吗?

分组相关的一切都可以。购买或恢复 Pro、直下载版检查更新、发送统计需要联网;这三项都不是使用 App 的前提。