macOS
macOS-specific traps: iCloud Drive, Keychain, AppleScript, bsdtar.
離屏錄製 SwiftUI 動畫要用慢動作
macOS app 用離屏視窗(offscreen window,不讓使用者看到)錄 README 動畫:每 1/30 秒用 NSView.cacheDisplay(in:to:) 截一張圖,再用 ffmpeg + img2webp 做成 animated webp。先量每一步的時間再改。
Edge AppleScript 新增書籤會讓 Edge 當掉
想用 osascript 把 Microsoft Edge 某個視窗的分頁批次存成書籤再關掉。抓背景視窗截圖不必切到前景:用 CGWindowListCopyWindowInfo 取得 window number。
Agent 的 bash 跑在 macOS Background session,讀不到 Keychain
訊息指向「解密失敗」,很容易往 cookie 過期、瀏覽器版本、加密格式改版這些方向查——全部都是死路。一個吞掉錯誤、改用 fallback 繼續跑的函式,會把失敗點搬到離現場很遠的地方。
macOS bsdtar 會吃掉 ._* 條目,tar -tf | grep 驗不出 AppleDouble 殘檔
._xxx 是 macOS 的 AppleDouble:把檔案的 extended attributes(xattr)與 resource fork存成一個同目錄的伴隨檔。用同一個工具家族去驗它自己的輸出,驗不到它自己會隱藏的東西。
macOS shell 存取 iCloud Drive 回 EINTR
看起來很像 iCloud Drive 同步卡死。EINTR 在 iCloud Drive 上不是「暫時性中斷、重試就好」,是權限被擋的偽裝。
codex exec 在 iCloud Drive 路徑下讀寫檔會卡死
把專案資料夾搬到 macOS iCloud Drive之後,codex exec 內建的 image_gen 工具在該路徑下工作時會卡死:process 存活、CPU 幾乎不動(10分鐘只增加零點幾秒),長時間不產出任何檔案,最後以 exit code 1 結束但沒有任何錯誤訊息。
Plash 桌布長時間播放多支影片卡死變黑,只能整個 Quit 重開救回
用 Plash 把本機 HTML(含多支 muted loop 影片的拍立得桌布動畫)當 macOS 動態桌布用,跑一段時間後(數小時到一兩天)影片會停止播放、凍結。Plash 是用 WKWebView 把本機網頁渲染成桌面背景。