Skip to content

Releases: AndyJuang/ScreenTaskMac

ScreenTask Mac 0.1.3

Choose a tag to compare

@AndyJuang AndyJuang released this 05 Sep 07:57

ScreenTask Mac 0.1.3 改成「一位觀看者兩條長連線」(畫面串流一條、狀態心跳一條)。觀看頁預設以 multipart/x-mixed-replace 串流接收畫面,其餘請求也改為 keep-alive 重用連線,不再每張畫面開一次 TCP 連線:同一段 20 秒的觀看,0.1.2 會產生約 140 條用完即關的連線,0.1.3 是 0 到 1 條。

這同時處理了一個嚴重問題。macOS 對隔離(quarantine)過的 App 會啟用 App Translocation,從唯讀影子掛載執行;在該狀態下持續分享畫面時,曾在 macOS 26.6.2 觸發核心崩潰並重新開機(崩潰路徑落在每條新連入連線都會執行的系統網路政策檢查)。本版兩面處理:大幅減少連入連線數,並在偵測到程式不是從「應用程式」執行時,主動詢問是否複製過去並重新開啟(原本那份會保留,可勾選不再提醒)。請將 App 拖到「應用程式」再使用,不要直接從下載資料夾開啟。

觀看頁其他調整:串流模式停用「更新間隔」欄位(速度由分享端的擷取間隔決定);瀏覽器不支援串流時自動降級為逐張更新並恢復該欄位;以每 3 秒一次的 HEAD 心跳偵測分享端停止,中斷時顯示提示並自動重連——舊版在串流下不會觸發 error 事件,畫面會停在最後一張。

連線防護:同時上限 256 條、單一來源上限 24 條,串流連線改以 TCP keepalive 回收失聯裝置;同一次寫入超過 10 秒沒有進度就重置該連線,名額要等系統真的收掉通訊端才釋出。這些是兩輪覆核逼出來的:第一輪發現「串流連線沒有任何逾時,單一來源可占滿整張連線表並癱瘓服務」,第二輪發現第一版修法只放掉了帳面名額、通訊端仍活著,反而變成無上限的記憶體洩漏。實測同一來源連續四波各 8 條「不讀取」連線,現在停在 16 條不再成長,最後一波結束約 20 秒內全部消失,其他裝置全程可正常觀看。觀看頁按下暫停或切到背景分頁時,Safari 原本仍會繼續收畫面並留下連線,現在會確實中斷。

驗證:核心回歸測試 7 組;loopback 整合測試新增連線重用、多段串流與明確關閉的檢查;新增 scripts/viewer-test.py,以 Chromium、WebKit、Firefox 三種引擎實際開啟觀看頁,檢查串流播放、暫停/繼續、分享端停止與復原、降級與連線數(需自行安裝 Playwright,屬開發工具,不隨 App 發佈)。CI 追加 Chromium/WebKit 觀看頁測試。

建置腳本新增選配的正式簽署與公證:設定 SCREENTASK_SIGN_IDENTITY 與 SCREENTASK_NOTARY_PROFILE 即以 hardened runtime 簽署、送交公證並蓋章。本次發行包仍為 ad-hoc 簽署、未公證;若 Gatekeeper 阻擋,確認來源後於系統設定選「仍要打開」。HTTP 未加密,請在可信任網路使用。詳見 docs/VALIDATION.md。

GPL-3.0-or-later。致謝 EslaMx7/ScreenTask 原始專案;本專案是獨立 macOS 移植。

ScreenTask Mac 0.1.2

Choose a tag to compare

@AndyJuang AndyJuang released this 05 Sep 02:41

ScreenTask Mac 0.1.2 加入全新 macOS 應用程式圖示:兩台螢幕與無線傳送弧線,代表在區域網路分享畫面。圖示包含 16–1024 px 完整 .icns 尺寸集,可在 Finder、Dock、Spotlight 與應用程式資料夾顯示。

下載 ScreenTaskMac-0.1.2-arm64.zip,解壓縮後將 App 拖到「應用程式」。首次開啟請允許螢幕錄製及區域網路連線,再重新開啟程式。

本版保留瀏覽器觀看、私人帳密、多螢幕來源選擇、JPEG 品質與間隔、游標、選單列、自動開始/最小化、全螢幕及斷線重連。

發行包使用 ad-hoc 簽署,尚未經 Apple 公證。若 Gatekeeper 阻擋,確認來源後使用系統設定的「仍要打開」。HTTP 未加密,請在可信任網路使用。詳見 docs/VALIDATION.md。

GPL-3.0-or-later。致謝 EslaMx7/ScreenTask 原始專案;本專案是獨立 macOS 移植。

ScreenTask Mac 0.1.1

Choose a tag to compare

@AndyJuang AndyJuang released this 05 Sep 02:33

ScreenTask Mac 首個 Apple Silicon 版本,適用 macOS 13 以上。

下載 ScreenTaskMac-0.1.1-arm64.zip,解壓縮後將 App 拖到「應用程式」。首次開啟請允許螢幕錄製及區域網路連線,再重新開啟程式。

包含瀏覽器觀看、私人帳密、多螢幕來源選擇、JPEG 品質與間隔、游標、選單列、自動開始/最小化、全螢幕及斷線重連。

已驗證 arm64 建置/簽章、核心回歸測試、搬移安裝包後的真實 HTTP 整合測試,以及本機真實螢幕傳送、暫停/繼續、全螢幕與停止。

發行包使用 ad-hoc 簽署,尚未經 Apple 公證。若 Gatekeeper 阻擋,確認來源後使用系統設定的「仍要打開」。HTTP 未加密,請在可信任網路使用。第二台實體裝置及多實體螢幕測試尚未執行,詳見 docs/VALIDATION.md。

GPL-3.0-or-later。致謝 EslaMx7/ScreenTask 原始專案;本專案是獨立 macOS 移植。

ScreenTask Mac 0.1.0

Choose a tag to compare

@AndyJuang AndyJuang released this 05 Sep 02:27

此版本已由 v0.1.1 取代。請下載 v0.1.1;其 Git 標籤、原始碼與 Apple Silicon 安裝包完全一致,並已通過 Swift 6 GitHub Actions 驗證。

ScreenTask Mac 首個 Apple Silicon 版本,適用 macOS 13 以上。

包含瀏覽器觀看、私人帳密、多螢幕來源選擇、JPEG 品質與間隔、游標、選單列、自動開始/最小化、全螢幕及斷線重連。

發行包使用 ad-hoc 簽署,尚未經 Apple 公證。HTTP 未加密,請在可信任網路使用。