Skip to content

SofaPad 4.5.0

Choose a tag to compare

@rick-ray-wldd rick-ray-wldd released this 01 Nov 23:27

SofaPad 4.5.0

Use your iPhone as the Mac's keyboard and trackpad — from the sofa, or with Vision Pro and Mac Virtual Display. The
phone opens a page served by a small menu-bar app on the Mac; nothing goes through a cloud.

What's new

  • SofaPad updates itself. It checks when it opens and once a day; ⌨︎🖱 → 檢查更新… (Check for Updates) checks
    now. A window shows what's new. Install Update downloads the new version and checks its signature,
    Install and Relaunch puts it in place and opens it again. Nothing is installed until you click. While a phone is
    connected, a new version waits in the menu (⬆︎ 安裝新版本 …) instead of opening a window, so the window can't catch
    what you type. Updates come from this project's GitHub releases and are signed with SofaPad's EdDSA key; the app
    refuses anything that doesn't match. 4.5.0 is the first version that can do this, so from 4.4 you install it by
    hand one last time.
  • The phone page follows the Mac. When the Mac app changes version, an open page, also the Home Screen app,
    reloads itself to the new one and says so. A Batch draft stays in the box. The page's files are no longer kept in
    the phone's cache.
  • Protocol versions. The Mac and the phone now say which version of their protocol they speak. The Mac accepts
    the current one and the one before it, so a 4.4 page still works. When they don't fit, the phone says which side
    needs updating instead of failing silently. The protocol is written down in
    docs/PROTOCOL.md, for an iPhone app later.
  • One dependency: Sparkle 2.10.0 (MIT), the update framework many Mac apps use. Its licence is in the zip
    (Sparkle-LICENSE.txt) and in the app.

Nothing else changed: typing, the trackpad, the rows, the languages and themes work as in 4.4.0.

Download and install

SofaPad-4.5.0-macOS.zip — macOS 13 or later, Apple silicon (arm64) only. On an Intel Mac, build it yourself.
Check it with shasum -a 256 -c SofaPad-4.5.0-macOS.zip.sha256.

Not signed with an Apple Developer ID and not notarized (ad-hoc signature only): macOS blocks it the first time.
Open it with System Settings > Privacy & Security > Open Anyway. Full steps, in English and Chinese:
docs/INSTALL.md. Or build it yourself (./tools/build-app.sh, README step 1A): a self-built app is
not blocked, and it updates itself too.

Coming from 4.4 or earlier: quit SofaPad, put this one in its place in Applications, open it, and give it the
Accessibility permission again (remove the old SofaPad from the list, add this one). Then scan the QR code from the
menu bar with the iPhone, or just reload the page. From now on SofaPad updates itself.

Known limits

  • Not signed with an Apple Developer ID yet: macOS blocks the first launch of a downloaded copy, and after an update
    the Accessibility permission may have to be given again (remove SofaPad from the list in System Settings and add it
    again). A Developer ID signature, planned, fixes both.
  • Plain http on the local network, no encryption: use it at home or on a network you trust.
  • The update was tested end to end on this Mac with test builds (4.5.0 updating itself to a test 4.5.1 from a local
    feed, both ad-hoc signed). The GitHub feed is used for real by the next release.
  • The automated tests run in a simulated phone page (headless Chrome, iPhone sizes) against the Mac app in dry-run
    mode. 4.5.0 has not been tried on a real iPhone before this package.

SofaPad 4.5.0(繁體中文)

把 iPhone 當成 Mac 的鍵盤和觸控板:在沙發上用,或戴 Vision Pro 用 Mac 虛擬顯示器時用。手機打開 Mac 選單列小程式提供的網頁,不經過任何雲端。

這一版

  • SofaPad 會自己更新。打開時和每天檢查一次;⌨︎🖱 →「檢查更新…」可以馬上檢查。視窗會顯示新版的說明,按「安裝更新項目」(Install Update)下載新版並檢查簽章,再按「安裝並重新啟動」(Install and Relaunch)換上新版並重新打開。沒有按就不會安裝。手機連線中時,新版會放在選單裡(「⬆︎ 安裝新版本 …」),不跳出視窗,以免視窗吃掉你打的字。更新來自這個專案的 GitHub Releases,用 SofaPad 的 EdDSA 金鑰簽章,對不上的一律不裝。4.5.0 是第一個能自己更新的版本,所以從 4.4 要最後一次手動安裝。
  • 手機網頁跟著 Mac 走。Mac 的 App 換了版本,開著的網頁(主畫面 App 也是)會自己重新載入成新版並說一聲,「整段」模式還沒送出的字會留在輸入框。網頁的檔案不再留在手機的快取裡。
  • 協定版本。Mac 和手機現在會說明自己用哪一版協定;Mac 接受目前這版和前一版,所以 4.4 的網頁還能用。對不上時,手機會說是哪一邊要更新,不會默默失敗。協定寫在 docs/PROTOCOL.md,以後的 iPhone App 可以照著做。
  • 一個第三方套件:Sparkle 2.10.0(MIT),很多 Mac App 都用它做更新。授權條款在 zip(Sparkle-LICENSE.txt)和 App 裡。

其他都沒有變:打字、觸控板、各列按鍵、語言和主題都和 4.4.0 一樣。

下載和安裝

SofaPad-4.5.0-macOS.zip:macOS 13 以上,只支援 Apple 晶片(arm64);Intel Mac 請自己 build。可以用 shasum -a 256 -c SofaPad-4.5.0-macOS.zip.sha256 核對。

沒有 Apple Developer ID 簽章,也沒有公證(只有臨時簽章 ad-hoc):第一次打開會被 macOS 擋下,到「系統設定 → 隱私權與安全性」按「強制打開」。完整步驟(中英):docs/INSTALL.md。也可以自己 build(./tools/build-app.sh,README 第 1 步 A),自己 build 的不會被擋,也會自己更新。

從 4.4 或更早的版本換過來:結束 SofaPad,把這一版放到「應用程式」取代舊的,打開它,再給一次「輔助使用」權限(在清單移除舊的 SofaPad,加入這一個)。接著用 iPhone 掃選單列的 QR code,或直接重新整理網頁。之後 SofaPad 就會自己更新。

已知限制

  • 還沒有 Apple Developer ID 簽章:下載的版本第一次打開會被 macOS 擋下;更新後「輔助使用」權限可能要再開一次(在系統設定的清單移除 SofaPad 再加回來)。之後換成 Developer ID 簽章就兩個都解決。
  • 區網內是一般的 http,沒有加密:請在家裡或信任的網路使用。
  • 更新流程在這台 Mac 上用測試版做過完整測試(4.5.0 從本機的更新清單自己更新成測試用的 4.5.1,兩個都是臨時簽章)。GitHub 上的更新清單要到下一版才真的用到。
  • 自動測試是在模擬的手機頁面(headless Chrome,iPhone 尺寸)對 dry-run 的 Mac App 跑的。4.5.0 打包前還沒有在真的 iPhone 上試過。