The Swift Package Index logo.Swift Package Index

Build Information

Failed to build FDSoundActivatedRecorder, reference 4.0.0 (997c7b), with Swift 6.0 for macOS (SPM) on 26 Jul 2025 00:48:33 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/fulldecent/FDSoundActivatedRecorder.git
Reference: 4.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/fulldecent/FDSoundActivatedRecorder
 * tag               4.0.0      -> FETCH_HEAD
HEAD is now at 997c7b6 Use Swift concurrency
Cloned https://github.com/fulldecent/FDSoundActivatedRecorder.git
Revision (git rev-parse @):
997c7b6de74782ee478676b2bf9c2706438cb82c
SUCCESS checkout https://github.com/fulldecent/FDSoundActivatedRecorder.git at 4.0.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/fulldecent/FDSoundActivatedRecorder.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-5BDAB9E9C0126B9D.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/4] Emitting module FDSoundActivatedRecorder
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:159:30: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
157 |     private let recordedURL: URL
158 |     private var recorder: AVAudioRecorder?
159 |     private var monitorTask: Task<Void, Never>?
    |                              `- error: 'Task' is only available in macOS 10.15 or newer
160 |
161 |     private var triggerLevel: Float?
[4/4] Compiling FDSoundActivatedRecorder FDSoundActivatedRecorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:159:30: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
157 |     private let recordedURL: URL
158 |     private var recorder: AVAudioRecorder?
159 |     private var monitorTask: Task<Void, Never>?
    |                              `- error: 'Task' is only available in macOS 10.15 or newer
160 |
161 |     private var triggerLevel: Float?
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:127:22: error: 'cancel()' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
125 |
126 |     deinit {
127 |         monitorTask?.cancel()
    |                      |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
128 |         recorder?.stop()
129 |         try? FileManager.default.removeItem(at: scratchDir)
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:134:22: error: 'cancel()' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
131 |
132 |     /// Begin listening; capture will start automatically when the rise‑trigger is met.
133 |     public func startListening() {
    |                 `- note: add @available attribute to enclosing instance method
134 |         monitorTask?.cancel()
    |                      |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
135 |         status = .listening
136 |         prepareSession()
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:148:22: error: 'cancel()' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
145 |
146 |     /// Cancel everything immediately and clean up.
147 |     public func abort() {
    |                 `- note: add @available attribute to enclosing instance method
148 |         monitorTask?.cancel()
    |                      |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
149 |         recorder?.stop()
150 |         status = .inactive
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:151:9: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
145 |
146 |     /// Cancel everything immediately and clean up.
147 |     public func abort() {
    |                 `- note: add @available attribute to enclosing instance method
148 |         monitorTask?.cancel()
149 |         recorder?.stop()
150 |         status = .inactive
151 |         Task { @MainActor in delegate?.recorderDidAbort(self) }
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
152 |     }
153 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:151:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
145 |
146 |     /// Cancel everything immediately and clean up.
147 |     public func abort() {
    |                 `- note: add @available attribute to enclosing instance method
148 |         monitorTask?.cancel()
149 |         recorder?.stop()
150 |         status = .inactive
151 |         Task { @MainActor in delegate?.recorderDidAbort(self) }
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
152 |     }
153 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:170:17: error: 'AVAudioSession' is unavailable in macOS
168 |
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
    |                 `- error: 'AVAudioSession' is unavailable in macOS
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
172 |         try? s.setActive(true)
AVFAudio.AVAudioSession:2:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 1 | @available(macOS, unavailable)
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
   |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:170:32: error: 'sharedInstance()' is unavailable in macOS
168 |
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
    |                                `- error: 'sharedInstance()' is unavailable in macOS
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
172 |         try? s.setActive(true)
AVFAudio.AVAudioSession:4:21: note: 'sharedInstance()' has been explicitly marked unavailable here
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
   |                     `- note: 'sharedInstance()' has been explicitly marked unavailable here
 5 |     @available(macOS, unavailable)
 6 |     open var availableCategories: [AVAudioSession.Category] { get }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:171:16: error: 'setCategory(_:mode:options:)' is unavailable in macOS
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
    |                `- error: 'setCategory(_:mode:options:)' is unavailable in macOS
172 |         try? s.setActive(true)
173 |     }
AVFAudio.AVAudioSession:18:15: note: 'setCategory(_:mode:options:)' has been explicitly marked unavailable here
16 |     open func setCategory(_ category: AVAudioSession.Category, withOptions options: AVAudioSession.CategoryOptions = []) throws
17 |     @available(macOS, unavailable)
18 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws
   |               `- note: 'setCategory(_:mode:options:)' has been explicitly marked unavailable here
19 |     @available(macOS, unavailable)
20 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:171:29: error: 'playAndRecord' is unavailable in macOS
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
    |                             `- error: 'playAndRecord' is unavailable in macOS
172 |         try? s.setActive(true)
173 |     }
AVFAudio.AVAudioSession.Category:11:23: note: 'playAndRecord' has been explicitly marked unavailable here
 9 |     public static let record: AVAudioSession.Category
10 |     @available(macOS, unavailable)
11 |     public static let playAndRecord: AVAudioSession.Category
   |                       `- note: 'playAndRecord' has been explicitly marked unavailable here
12 |     @available(macOS, unavailable)
13 |     public static let audioProcessing: AVAudioSession.Category
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:171:51: error: 'default' is unavailable in macOS
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
    |                                                   `- error: 'default' is unavailable in macOS
172 |         try? s.setActive(true)
173 |     }
AVFAudio.AVAudioSession.Mode:3:23: note: 'default' has been explicitly marked unavailable here
 1 | extension AVAudioSession.Mode {
 2 |     @available(macOS, unavailable)
 3 |     public static let `default`: AVAudioSession.Mode
   |                       `- note: 'default' has been explicitly marked unavailable here
 4 |     @available(macOS, unavailable)
 5 |     public static let voiceChat: AVAudioSession.Mode
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:171:71: error: 'defaultToSpeaker' is unavailable in macOS
169 |     private func prepareSession() {
170 |         let s = AVAudioSession.sharedInstance()
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
    |                                                                       `- error: 'defaultToSpeaker' is unavailable in macOS
172 |         try? s.setActive(true)
173 |     }
AVFAudio.AVAudioSession:77:27: note: 'defaultToSpeaker' has been explicitly marked unavailable here
 75 |         public static var AllowBluetooth: AVAudioSession.CategoryOptions { get }
 76 |         @available(macOS, unavailable)
 77 |         public static var defaultToSpeaker: AVAudioSession.CategoryOptions { get }
    |                           `- note: 'defaultToSpeaker' has been explicitly marked unavailable here
 78 |         @available(macOS, unavailable)
 79 |         @available(swift, obsoleted: 3, renamed: "defaultToSpeaker")
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:172:16: error: 'setActive' is unavailable in Swift
170 |         let s = AVAudioSession.sharedInstance()
171 |         try? s.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker])
172 |         try? s.setActive(true)
    |                `- error: 'setActive' is unavailable in Swift
173 |     }
174 |
AVFAudio.AVAudioSession:4:15: note: 'setActive' has been explicitly marked unavailable here
 2 |     @available(macOS, unavailable)
 3 |     @available(*, unavailable, message: "Not available in Swift")
 4 |     open func setActive(_ active: Bool) throws
   |               `- note: 'setActive' has been explicitly marked unavailable here
 5 |     @available(macOS, unavailable)
 6 |     open func setActive(_ active: Bool, options: AVAudioSession.SetActiveOptions = []) throws
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:178:23: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
173 |     }
174 |
175 |     private func startMonitorLoop() {
    |                  `- note: add @available attribute to enclosing instance method
176 |         let millis = Int(config.intervalSeconds * 1_000)
177 |
178 |         monitorTask = Task {
    |                       |- error: 'Task' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:178:23: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
173 |     }
174 |
175 |     private func startMonitorLoop() {
    |                  `- note: add @available attribute to enclosing instance method
176 |         let millis = Int(config.intervalSeconds * 1_000)
177 |
178 |         monitorTask = Task {
    |                       |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:180:28: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
173 |     }
174 |
175 |     private func startMonitorLoop() {
    |                  `- note: add @available attribute to enclosing instance method
176 |         let millis = Int(config.intervalSeconds * 1_000)
177 |
178 |         monitorTask = Task {
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
181 |                 guard let recorder = await self.recorder else { continue }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:180:33: error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
173 |     }
174 |
175 |     private func startMonitorLoop() {
    |                  `- note: add @available attribute to enclosing instance method
176 |         let millis = Int(config.intervalSeconds * 1_000)
177 |
178 |         monitorTask = Task {
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
    |                                 |- error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
    |                                 `- note: add 'if #available' version check
181 |                 guard let recorder = await self.recorder else { continue }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:180:45: error: 'milliseconds' is only available in macOS 13.0 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
173 |     }
174 |
175 |     private func startMonitorLoop() {
    |                  `- note: add @available attribute to enclosing instance method
176 |         let millis = Int(config.intervalSeconds * 1_000)
177 |
178 |         monitorTask = Task {
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
    |                                             |- error: 'milliseconds' is only available in macOS 13.0 or newer
    |                                             `- note: add 'if #available' version check
181 |                 guard let recorder = await self.recorder else { continue }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:181:38: warning: no 'async' operations occur within 'await' expression
179 |             while true {
180 |                 try? await Task.sleep(for: .milliseconds(millis))
181 |                 guard let recorder = await self.recorder else { continue }
    |                                      `- warning: no 'async' operations occur within 'await' expression
182 |
183 |                 await recorder.updateMeters()
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:183:17: warning: no 'async' operations occur within 'await' expression
181 |                 guard let recorder = await self.recorder else { continue }
182 |
183 |                 await recorder.updateMeters()
    |                 `- warning: no 'async' operations occur within 'await' expression
184 |
185 |                 // Timed‑out while listening and never started saving
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:187:24: warning: no 'async' operations occur within 'await' expression
185 |                 // Timed‑out while listening and never started saving
186 |                 if !recorder.isRecording {
187 |                     if await self.status == .listening {
    |                        `- warning: no 'async' operations occur within 'await' expression
188 |                         await self.finishByTimeout()
189 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:207:15: error: 'MainActor' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
199 |     // MARK: – Interval processing --------------------------------------------
200 |
201 |     private func handleInterval(_ rawLevel: Float) async {
    |                  `- note: add @available attribute to enclosing instance method
202 |         // Convert dB (negative) to 0…1 scale for the delegate
203 |         let scaled = scale(rawLevel)
    :
205 |         let averagingCount = averaging.count
206 |
207 |         await MainActor.run {
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
208 |             delegate?.recorder(
209 |                 self,
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:207:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
199 |     // MARK: – Interval processing --------------------------------------------
200 |
201 |     private func handleInterval(_ rawLevel: Float) async {
    |                  `- note: add @available attribute to enclosing instance method
202 |         // Convert dB (negative) to 0…1 scale for the delegate
203 |         let scaled = scale(rawLevel)
    :
205 |         let averagingCount = averaging.count
206 |
207 |         await MainActor.run {
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
208 |             delegate?.recorder(
209 |                 self,
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:261:9: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
255 |
256 |     /// Transition from listening → saving
257 |     private func startSaving() {
    |                  `- note: add @available attribute to enclosing instance method
258 |         guard status == .listening else { return }
259 |
260 |         status = .saving
261 |         Task { @MainActor in delegate?.recorderDidStartSaving(self) }
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
262 |
263 |         let offset   = Double(config.riseTriggerIntervals) * config.intervalSeconds
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:261:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
255 |
256 |     /// Transition from listening → saving
257 |     private func startSaving() {
    |                  `- note: add @available attribute to enclosing instance method
258 |         guard status == .listening else { return }
259 |
260 |         status = .saving
261 |         Task { @MainActor in delegate?.recorderDidStartSaving(self) }
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
262 |
263 |         let offset   = Double(config.riseTriggerIntervals) * config.intervalSeconds
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:279:22: error: 'cancel()' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
274 |
275 |     /// Transition from saving → finished (file export still pending)
276 |     private func stopSaving() {
    |                  `- note: add @available attribute to enclosing instance method
277 |         guard status == .saving else { return }
278 |
279 |         monitorTask?.cancel()          // stop the metering loop
    |                      |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
280 |         status = .inactive
281 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:287:9: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
274 |
275 |     /// Transition from saving → finished (file export still pending)
276 |     private func stopSaving() {
    |                  `- note: add @available attribute to enclosing instance method
277 |         guard status == .saving else { return }
278 |
    :
285 |         recorder?.stop()
286 |
287 |         Task { @MainActor in delegate?.recorderDidFinishSaving(self) }
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
288 |         Task { await self.exportAndSave() }
289 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:287:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
274 |
275 |     /// Transition from saving → finished (file export still pending)
276 |     private func stopSaving() {
    |                  `- note: add @available attribute to enclosing instance method
277 |         guard status == .saving else { return }
278 |
    :
285 |         recorder?.stop()
286 |
287 |         Task { @MainActor in delegate?.recorderDidFinishSaving(self) }
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
288 |         Task { await self.exportAndSave() }
289 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:288:9: error: 'Task' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
274 |
275 |     /// Transition from saving → finished (file export still pending)
276 |     private func stopSaving() {
    |                  `- note: add @available attribute to enclosing instance method
277 |         guard status == .saving else { return }
278 |
    :
286 |
287 |         Task { @MainActor in delegate?.recorderDidFinishSaving(self) }
288 |         Task { await self.exportAndSave() }
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
289 |     }
290 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:288:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
274 |
275 |     /// Transition from saving → finished (file export still pending)
276 |     private func stopSaving() {
    |                  `- note: add @available attribute to enclosing instance method
277 |         guard status == .saving else { return }
278 |
    :
286 |
287 |         Task { @MainActor in delegate?.recorderDidFinishSaving(self) }
288 |         Task { await self.exportAndSave() }
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
289 |     }
290 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:295:15: error: 'MainActor' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
290 |
291 |     /// Called when the timeout expires with no capture
292 |     private func finishByTimeout() async {
    |                  `- note: add @available attribute to enclosing instance method
293 |         recorder?.stop()
294 |         status = .inactive
295 |         await MainActor.run { delegate?.recorderDidTimeOut(self) }
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
296 |     }
297 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:295:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
290 |
291 |     /// Called when the timeout expires with no capture
292 |     private func finishByTimeout() async {
    |                  `- note: add @available attribute to enclosing instance method
293 |         recorder?.stop()
294 |         status = .inactive
295 |         await MainActor.run { delegate?.recorderDidTimeOut(self) }
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
296 |     }
297 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:307:19: error: 'MainActor' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
305 |               let export = AVAssetExportSession(asset: AVAsset(url: recordedURL),
306 |                                                 presetName: AVAssetExportPresetAppleM4A) else {
307 |             await MainActor.run { delegate?.recorderDidAbort(self) }
    |                   |- error: 'MainActor' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
308 |             return
309 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:307:29: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
305 |               let export = AVAssetExportSession(asset: AVAsset(url: recordedURL),
306 |                                                 presetName: AVAssetExportPresetAppleM4A) else {
307 |             await MainActor.run { delegate?.recorderDidAbort(self) }
    |                             |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
308 |             return
309 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:332:15: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
330 |         export.audioMix       = mix
331 |
332 |         await withCheckedContinuation { (c: CheckedContinuation<Void, Never>) in
    |               |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
333 |             export.exportAsynchronously { c.resume() }
334 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:332:45: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
330 |         export.audioMix       = mix
331 |
332 |         await withCheckedContinuation { (c: CheckedContinuation<Void, Never>) in
    |                                             |- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
    |                                             `- note: add 'if #available' version check
333 |             export.exportAsynchronously { c.resume() }
334 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:333:45: error: 'resume()' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
331 |
332 |         await withCheckedContinuation { (c: CheckedContinuation<Void, Never>) in
333 |             export.exportAsynchronously { c.resume() }
    |                                             |- error: 'resume()' is only available in macOS 10.15 or newer
    |                                             `- note: add 'if #available' version check
334 |         }
335 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:336:15: error: 'MainActor' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
334 |         }
335 |
336 |         await MainActor.run { delegate?.recorderDidSaveFile(self, to: outURL) }
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
337 |     }
338 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:336:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
334 |         }
335 |
336 |         await MainActor.run { delegate?.recorderDidSaveFile(self, to: outURL) }
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
337 |     }
338 |
/Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:332:40: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift:332:39: note: expanded code originates here
 36 |  */
 37 |
 38 | public actor FDSoundActivatedRecorder {
    |              `- note: add @available attribute to enclosing actor
 39 |
 40 |     // MARK: – Nested types ---------------------------------------------------
    :
298 |     // MARK: – Export ----------------------------------------------------------
299 |
300 |     private func exportAndSave() async {
    |                  `- note: add @available attribute to enclosing instance method
301 |         let outURL = scratchDir.appendingPathComponent("\(UUID().uuidString).m4a")
302 |
    :
330 |         export.audioMix       = mix
331 |
332 |         await withCheckedContinuation { (c: CheckedContinuation<Void, Never>) in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/FDSoundActivatedRecorder/FDSoundActivatedRecorder.swift
    |330 |
    |331 |
    |332 |                                       #isolation
    |    |                                        `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------------
333 |             export.exportAsynchronously { c.resume() }
334 |         }
BUILD FAILURE 6.0 macosSpm