Skip to content

macOS Compatibility

星冉 edited this page Aug 3, 2026 · 1 revision

macOS Compatibility

中文

Baseline

The deployment target is macOS 11.0. Do not raise it to resolve availability errors. Use the best implementation on macOS 12 and later when it improves the product, with a scoped macOS 11 fallback that preserves core data and interaction semantics.

Current compatibility layer

Screen-Remote/MacOSCompatibility.swift centralizes current wrappers: window sizing bridges, app-aware runtime localization, compatible background/overlay helpers, text selection and monospaced-digit fallbacks, and URLSession download fallback. if #available and visual alternatives should remain in this compatibility layer rather than spread through feature views.

Rules for a new API

  1. Check the API's macOS availability before integrating it.
  2. Add or extend a named compatibility wrapper near related wrappers.
  3. Keep feature code on the unified wrapper.
  4. Compile/check both the macOS 11 path and the current-SDK path.

Core functionality cannot be removed on macOS 11; modest visual differences are acceptable. Native SwiftUI/AppKit integration belongs in the app, not in Android or dadb code.

Clone this wiki locally