App
iPhone 与 Mac 上的「不沾」不联网,没有账号,不收集数据。设备上只存今日计数和它的日期;你在 App 里选了界面语言时,再加上这个选择。
本节说的是 iPhone 与 Mac 上已有的功能。即将推出的提醒的话会多存一句话,下一节单独写。
不做的事
- 不联网。App 里没有联网的代码;Mac 版运行在沙盒里,没有申请联网权限,系统也不允许它联网。
- 没有账号,不用注册或登录。
- 没有统计、广告或其他第三方 SDK,不追踪你,也不和别的 App 或网站交换数据。
- 不推送通知。
设备上存的两样
今日计数(一个整数)和它对应的日期(年-月-日),存在系统的 UserDefaults 里。日期不是今天时,App 按 0 计,所以过了零点就归零。
- iPhone:存在 App Group(group.org.gewill.buzhan)里,只有「不沾」和它自带的小组件、夜间荷塘能读。App Group 打不开时,改存在 App 自己的空间里,那份只有 App 本身能读写。
- Mac:存在 App 的沙盒里,只有「不沾」能读写。
这两项不会离开设备,除非出现在你自己的设备备份里(见下)。在 iPhone 上删除「不沾」,它们会一起删除。
界面语言
默认「跟随系统」,这时什么也不存。在「语言」里选了一种语言,App 会在自己的偏好设置里记下这个选择;iPhone 上另在同一个 App Group 里存一份,给小组件和夜间荷塘读。选回「跟随系统」,两份都删除。它和计数一样不离开设备。
写下的字
你写下的字只交给滑落动画:每个字一颗水珠,约 3 秒后动画结束,文字随动画一起从内存里释放。它不写入磁盘,不进日志,不发到任何地方,App 里也没有可以翻看的历史。一次最多 60 个字;只有空格时不计数。
Mac 上的输入条也是这样。⌃⌥⌘D 用 macOS 的全局快捷键接口注册,App 只在按下这组键时收到通知,读不到你在别的 App 里打的字,所以不需要辅助功能权限。
Siri 与快捷指令
「不沾」提供三个操作:「让一件是非滑走」、「上场前停一下」和「全屏停五秒」。它们都不带参数,不接收任何文字。原因是:操作一旦带参数,系统会把参数原文记进自己的动作记录和系统日志,App 拦不住,所以内容不走这条路。
对 Siri 说“用不沾让是非滑走”时,你说的话由 Apple 的 Siri 处理,「不沾」只知道这个操作运行了一次,计数加一。系统可能会记下这个操作运行的时间,但没有内容可记。
上场前拦截的自动化由你自己在快捷指令里建,你选了哪些 App 保存在快捷指令里,由系统管理。「不沾」不知道是哪个 App 触发了它。
实时活动与小组件
夜间荷塘的实时活动只带今日计数和界面语言,上面的原文是 App 自带的固定文字。它只在本机更新,不经过推送服务。小组件也只读今日计数。用了提醒的话,它们还会显示你写的那一句,见下一节。
它们显示在锁定屏幕、灵动岛和待机显示上,不解锁也看得到,旁人也看得到今日计数。
系统输入法
iPhone 和 Mac 的输入法会学习你打过的词,之后给出候选。你在「不沾」里写下的句子也可能被学进去。这是系统行为,App 管不到,也看不到。
iPhone 上可以在「设置」›「通用」›「传输或还原 iPhone」›「还原」›「还原键盘字典」清掉学到的词;这也会清掉在其他 App 里学到的词。Mac 上清除的办法取决于你用的输入法。
设备备份
备份 iPhone 或 Mac 时(无论备份到云端还是电脑),备份里可能包含今日计数、日期和你选的界面语言。备份由系统和你选的备份方式处理,「不沾」不读也不传。写下的字从不存盘,所以不会出现在备份里。
崩溃报告
「不沾」自己不收集崩溃报告。按 Apple 的机制,只有你在 iPhone 的「设置」›「隐私与安全性」›「分析与改进」里打开了「与 App 开发者共享」(Mac 上在「系统设置」的同一处),「不沾」的崩溃报告和诊断信息才会由 Apple 转给开发者。这由 Apple 处理,可以随时在同一处关掉。
用 TestFlight 安装测试版时,TestFlight 也可能把崩溃信息和你主动提交的反馈转给开发者。
权限
「不沾」不请求相机、麦克风、位置、通讯录或照片权限。iPhone 上第一次点「开启夜间荷塘」时,系统会在锁定屏幕上问你是否允许它显示实时活动。Mac 上打开「开机启动」后,「不沾」会出现在「系统设置」›「通用」›「登录项」里。
隐私清单
每个安装包都带一份 Apple 要求的隐私清单(PrivacyInfo.xcprivacy):不追踪,没有追踪域名,不收集任何数据类型。需要说明理由的系统接口只有 UserDefaults,用来存上面这几项:iPhone App 和小组件声明 1C8F.1(在 App Group 内共享)和 CA92.1(只在本 App 内读写),Mac 版声明 CA92.1。