Skip to content

Commit abf04a5

Browse files
committed
fix: add macOS 14.0 availability check for updateConfiguration
SCStream.updateConfiguration(_:) is only available on macOS 14.0+. On macOS 13, the async call would hang indefinitely because the method doesn't exist. Now returns an error on unsupported versions instead.
1 parent 1976bcd commit abf04a5

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

swift-bridge/Sources/ScreenCaptureKitBridge/Stream.swift

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -391,16 +391,21 @@ public func updateStreamConfiguration(
391391
_ context: UnsafeMutableRawPointer?,
392392
_ callback: @escaping @convention(c) (UnsafeMutableRawPointer?, Bool, UnsafePointer<CChar>?) -> Void
393393
) {
394-
let scStream: SCStream = unretained(stream)
395-
let scConfig: SCStreamConfiguration = unretained(config)
396-
Task {
397-
do {
398-
try await scStream.updateConfiguration(scConfig)
399-
callback(context, true, nil)
400-
} catch {
401-
let bridgeError = SCBridgeError.configurationError(error.localizedDescription)
402-
bridgeError.description.withCString { callback(context, false, $0) }
394+
if #available(macOS 14.0, *) {
395+
let scStream: SCStream = unretained(stream)
396+
let scConfig: SCStreamConfiguration = unretained(config)
397+
Task {
398+
do {
399+
try await scStream.updateConfiguration(scConfig)
400+
callback(context, true, nil)
401+
} catch {
402+
let bridgeError = SCBridgeError.configurationError(error.localizedDescription)
403+
bridgeError.description.withCString { callback(context, false, $0) }
404+
}
403405
}
406+
} else {
407+
let bridgeError = SCBridgeError.configurationError("updateConfiguration requires macOS 14.0 or later")
408+
bridgeError.description.withCString { callback(context, false, $0) }
404409
}
405410
}
406411

0 commit comments

Comments
 (0)