The Swift Package Index logo.Swift Package Index

Build Information

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

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.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: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/fulldecent/FDSoundActivatedRecorder
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
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 main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/fulldecent/FDSoundActivatedRecorder.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-1EA4D86E10B52AF.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)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h:30:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 28 | NS_SWIFT_SENDABLE
 29 | API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos)
 30 | @interface AVAudioSession : NSObject {
    |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 31 | @private
 32 | //	Reenable once rdar://135815013 is unblocked
/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.sharedInstance:3:19: note: 'sharedInstance()' has been explicitly marked unavailable here
1 | class AVAudioSession {
2 | @available(macOS, unavailable)
3 |   open class func sharedInstance() -> AVAudioSession}
  |                   `- note: 'sharedInstance()' has been explicitly marked unavailable here
4 |
/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.setCategory:3:13: note: 'setCategory(_:mode:options:)' has been explicitly marked unavailable here
1 | class AVAudioSession {
2 | @available(macOS, unavailable)
3 |   open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws}
  |             `- note: 'setCategory(_:mode:options:)' has been explicitly marked unavailable here
4 |
/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 |     }
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h:106:40: note: 'playAndRecord' has been explicitly marked unavailable here
104 |
105 | /*! Use this category when recording and playing back audio. */
106 | OS_EXPORT AVAudioSessionCategory const AVAudioSessionCategoryPlayAndRecord		API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
    |                                        `- note: 'playAndRecord' has been explicitly marked unavailable here
107 |
108 | /*! Use this category when using a hardware codec or signal processor while
/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 |     }
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h:136:36: note: 'default' has been explicitly marked unavailable here
134 |
135 | /*! The default mode */
136 | OS_EXPORT AVAudioSessionMode const AVAudioSessionModeDefault API_AVAILABLE(ios(5.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
    |                                    `- note: 'default' has been explicitly marked unavailable here
137 |
138 | /*! Only valid with AVAudioSessionCategoryPlayAndRecord.  Appropriate for Voice over IP
/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.CategoryOptions.defaultToSpeaker:4:23: note: 'defaultToSpeaker' has been explicitly marked unavailable here
2 |   struct CategoryOptions {
3 | @available(macOS, unavailable)
4 |     public static var defaultToSpeaker: AVAudioSession.CategoryOptions { get }  }
  |                       `- note: 'defaultToSpeaker' has been explicitly marked unavailable here
5 | }
6 |
/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.setActive:4:13: 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 |
/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.2 macosSpm