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):不追蹤,沒有追蹤網域,不收集任何資料類型。需要說明理由的系統 API 只有 UserDefaults,用來存上面這幾項:iPhone App 和小工具宣告 1C8F.1(在 App Group 內共用)和 CA92.1(只在本 App 內讀寫),Mac 版宣告 CA92.1。