fix(macos): lower deployment target to macOS 13.0 for native helpers

The Swift helper binaries were compiled with -target macos14.0, causing
dyld symbol-not-found crashes on macOS 13. The ScreenCaptureKit audio
APIs require macOS 13.0 minimum, so the deployment target is lowered to
13.0 and an #available guard is added for the macOS 14-only
ignoreShadowsSingleWindow API. README updated accordingly.

Fixes #199, fixes #200
This commit is contained in:
webadderall
2026-04-09 21:23:33 +10:00
parent c85fb7a05a
commit fb54994685
11 changed files with 8 additions and 6 deletions
+3 -3
View File
@@ -30,7 +30,7 @@ Recordly is a desktop app for recording and editing screen captures with motion-
Recordly runs on:
- **macOS** 12.3+
- **macOS** 13.0+
- **Windows** 10 Build 19041+
- **Linux** on modern distros
@@ -237,7 +237,7 @@ xattr -rd com.apple.quarantine /Applications/Recordly.app
| Platform | Minimum version | Notes |
|---|---|---|
| **macOS** | macOS 12.3 (Monterey) | Required for ScreenCaptureKit-based capture. |
| **macOS** | macOS 13.0 (Ventura) | Required for ScreenCaptureKit audio capture. |
| **Windows** | Windows 10 20H1 (Build 19041, May 2020) | Required for the native Windows Graphics Capture (WGC) helper and best cursor-hiding behavior. |
| **Linux** | Any modern distro | Recording works through Electron capture. System audio generally requires PipeWire. |
@@ -308,7 +308,7 @@ System audio support varies by platform.
- Usually requires PipeWire
**macOS**
- Requires macOS 12.3+ and the ScreenCaptureKit-based workflow
- Requires macOS 13.0+ and the ScreenCaptureKit-based workflow
---
@@ -117,7 +117,9 @@ final class ScreenCaptureRecorder: NSObject, SCStreamOutput, SCStreamDelegate {
let scaleFactor = ScreenCaptureRecorder.scaleFactor(for: candidateDisplay?.displayID ?? CGMainDisplayID())
outputWidth = max(2, Int(window.frame.width) * scaleFactor)
outputHeight = max(2, Int(window.frame.height) * scaleFactor)
streamConfig.ignoreShadowsSingleWindow = true
if #available(macOS 14.0, *) {
streamConfig.ignoreShadowsSingleWindow = true
}
streamConfig.width = outputWidth
streamConfig.height = outputHeight
} else {
+2 -2
View File
@@ -14,11 +14,11 @@ function getTargetConfigs() {
return [
{
archTag: "darwin-arm64",
swiftTarget: "arm64-apple-macos14.0",
swiftTarget: "arm64-apple-macos13.0",
},
{
archTag: "darwin-x64",
swiftTarget: "x86_64-apple-macos14.0",
swiftTarget: "x86_64-apple-macos13.0",
},
];
}