The Swift Package Index logo.Swift Package Index

Build Information

Failed to build OEVoice, reference main (5d00dc), with Swift 6.3 for macOS (SPM) on 8 Sep 2026 07:12:27 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ryanlintott/OEVoice.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ryanlintott/OEVoice
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 5d00dc8 Merge pull request #2 from ryanlintott/ci/swift-6-0-xcode-probe
Cloned https://github.com/ryanlintott/OEVoice.git
Revision (git rev-parse @):
5d00dc8b709683f5d73d044ee5402f829fb4a782
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ryanlintott/OEVoice.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "oevoice",
      "name": "OEVoice",
      "url": "https://github.com/ryanlintott/OEVoice.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/OEVoice",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/ryanlintott/OEVoice.git
[1/418] Fetching oevoice
Fetched https://github.com/ryanlintott/OEVoice.git from cache (1.53s)
Creating working copy for https://github.com/ryanlintott/OEVoice.git
Working copy of https://github.com/ryanlintott/OEVoice.git resolved at main (5d00dc8)
warning: '.resolve-product-dependencies': dependency 'oevoice' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/ryanlintott/OEVoice.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-69A768CDF2A0BEE1.txt
[3/12] Compiling OEVoice OEVoice.swift
[4/12] Compiling OEVoice SpecialCharacter.swift
[5/12] Compiling OEVoice OEVoiceError.swift
[6/12] Compiling OEVoice AttributedString-extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:10:20: error: 'AttributedString' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          |         `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:35:18: error: 'AttributedString' is only available in macOS 12 or newer
33 | }
34 |
35 | public extension AttributedString {
   |        |         `- error: 'AttributedString' is only available in macOS 12 or newer
   |        `- note: add '@available' attribute to enclosing extension
36 |     /// Adds accessible phonetic pronunciation for specified phrases.
37 |     /// - Parameter phrases: Dictionary of phrases and ipa pronunciations for those phrases
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:20:30: error: 'characters' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
18 |         var searchOffset = 0
19 |
20 |         while searchOffset < characters.count {
   |                              |- error: 'characters' is only available in macOS 12 or newer
   |                              `- note: add 'if #available' version check
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
22 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:20:41: error: conformance of 'AttributedString.CharacterView' to 'Collection' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
18 |         var searchOffset = 0
19 |
20 |         while searchOffset < characters.count {
   |                                         |- error: conformance of 'AttributedString.CharacterView' to 'Collection' is only available in macOS 12 or newer
   |                                         `- note: add 'if #available' version check
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
22 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:21:31: error: 'characters' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
19 |
20 |         while searchOffset < characters.count {
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
   |                               |- error: 'characters' is only available in macOS 12 or newer
   |                               `- note: add 'if #available' version check
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:21:42: error: conformance of 'AttributedString.CharacterView' to 'BidirectionalCollection' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
19 |
20 |         while searchOffset < characters.count {
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
   |                                          |- error: conformance of 'AttributedString.CharacterView' to 'BidirectionalCollection' is only available in macOS 12 or newer
   |                                          `- note: add 'if #available' version check
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:21:48: error: 'characters' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
19 |
20 |         while searchOffset < characters.count {
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
   |                                                |- error: 'characters' is only available in macOS 12 or newer
   |                                                `- note: add 'if #available' version check
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:21:59: error: 'startIndex' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
19 |
20 |         while searchOffset < characters.count {
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
   |                                                           |- error: 'startIndex' is only available in macOS 12 or newer
   |                                                           `- note: add 'if #available' version check
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:23:31: error: 'subscript(_:)' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
   |                               |- error: 'subscript(_:)' is only available in macOS 12 or newer
   |                               `- note: add 'if #available' version check
24 |
25 |             // Measured before the mutation as indices may not survive one
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:23:52: error: 'range(of:options:locale:)' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
21 |             let searchStart = characters.index(characters.startIndex, offsetBy: searchOffset)
22 |
23 |             guard let range = self[searchStart...].range(of: phrase) else { return }
   |                                                    |- error: 'range(of:options:locale:)' is only available in macOS 12 or newer
   |                                                    `- note: add 'if #available' version check
24 |
25 |             // Measured before the mutation as indices may not survive one
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:26:30: error: 'characters' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
24 |
25 |             // Measured before the mutation as indices may not survive one
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
   |                              |- error: 'characters' is only available in macOS 12 or newer
   |                              `- note: add 'if #available' version check
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:26:41: error: conformance of 'AttributedString.CharacterView' to 'BidirectionalCollection' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
24 |
25 |             // Measured before the mutation as indices may not survive one
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
   |                                         |- error: conformance of 'AttributedString.CharacterView' to 'BidirectionalCollection' is only available in macOS 12 or newer
   |                                         `- note: add 'if #available' version check
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:26:56: error: 'characters' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
24 |
25 |             // Measured before the mutation as indices may not survive one
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
   |                                                        |- error: 'characters' is only available in macOS 12 or newer
   |                                                        `- note: add 'if #available' version check
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:26:67: error: 'startIndex' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
24 |
25 |             // Measured before the mutation as indices may not survive one
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
   |                                                                   |- error: 'startIndex' is only available in macOS 12 or newer
   |                                                                   `- note: add 'if #available' version check
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:28:13: error: 'subscript(dynamicMember:)' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
   |             |- error: 'subscript(dynamicMember:)' is only available in macOS 12 or newer
   |             `- note: add 'if #available' version check
29 |
30 |             searchOffset = nextOffset
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:28:13: error: 'subscript(_:)' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
13 |     ///   - phonetic: IPA pronunciation applied to each occurrence.
14 |     ///   - phrase: Phrase to find. An empty phrase does nothing.
15 |     mutating func setPhoneticNotation(_ phonetic: String, forOccurrencesOf phrase: String) {
   |                   `- note: add '@available' attribute to enclosing instance method
16 |         guard !phrase.isEmpty else { return }
17 |
   :
26 |             let nextOffset = characters.distance(from: characters.startIndex, to: range.upperBound)
27 |
28 |             self[range].accessibilitySpeechPhoneticNotation = phonetic
   |             |- error: 'subscript(_:)' is only available in macOS 12 or newer
   |             `- note: add 'if #available' version check
29 |
30 |             searchOffset = nextOffset
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in macOS 12.0 or newer
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:88:13: error: 'subscript(dynamicMember:)' is only available in macOS 12 or newer
33 | }
34 |
35 | public extension AttributedString {
   |        `- note: add '@available' attribute to enclosing extension
36 |     /// Adds accessible phonetic pronunciation for specified phrases.
37 |     /// - Parameter phrases: Dictionary of phrases and ipa pronunciations for those phrases
   :
78 |     ///   - voice: Voice used to adjust the ipa pronunciation
79 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
80 |     func accessibilityOldEnglishIPA(_ ipa: String?, voice: OEVoice = .default) -> Self {
   |          `- note: add '@available' attribute to enclosing instance method
81 |         var attributedString = self
82 |
   :
86 | //            attributedString.languageIdentifier = "en-US"
87 |             // apply ipa pronunciation
88 |             attributedString.accessibilitySpeechPhoneticNotation = phonetic
   |             |- error: 'subscript(dynamicMember:)' is only available in macOS 12 or newer
   |             `- note: add 'if #available' version check
89 |         }
90 |
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in macOS 12.0 or newer
[7/12] Compiling OEVoice NSAttributedString-extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/NSAttributedString-extensions.swift:43:45: error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechIPANotation'
41 |         let attributedString = self
42 |
43 |         let ipaKey = NSAttributedString.Key.accessibilitySpeechIPANotation
   |                                             `- error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechIPANotation'
44 |
45 |         phrases.forEach { (phrase, ipa) in
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/NSAttributedString-extensions.swift:56:22: error: type 'NSAttributedString.Key' has no member 'accessibilityTextCustom'
54 |                 attributedString.addAttributes([
55 |                     ipaKey: phonetic,
56 |                     .accessibilityTextCustom: ["Old English"],
   |                      `- error: type 'NSAttributedString.Key' has no member 'accessibilityTextCustom'
57 |                     .accessibilitySpeechLanguage: OEVoice.preferredLanguage
58 |                 ], range: range)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/NSAttributedString-extensions.swift:57:22: error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechLanguage'
55 |                     ipaKey: phonetic,
56 |                     .accessibilityTextCustom: ["Old English"],
57 |                     .accessibilitySpeechLanguage: OEVoice.preferredLanguage
   |                      `- error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechLanguage'
58 |                 ], range: range)
59 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/NSAttributedString-extensions.swift:75:58: error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechIPANotation'
73 |     func setSpeechIPAMatchingAccessibilityIPA() {
74 |         let range = NSMakeRange(0, length)
75 |         let accessibilityIPAKey = NSAttributedString.Key.accessibilitySpeechIPANotation
   |                                                          `- error: type 'NSAttributedString.Key' has no member 'accessibilitySpeechIPANotation'
76 |         let pronunciationIPAKey = NSAttributedString.Key(rawValue: AVSpeechSynthesisIPANotationAttribute)
77 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/NSAttributedString-extensions.swift:76:68: error: 'AVSpeechSynthesisIPANotationAttribute' is only available in macOS 10.14 or newer
33 | }
34 |
35 | public extension NSMutableAttributedString {
   |        `- note: add '@available' attribute to enclosing extension
36 |     func accessibilityOldEnglishIPA(_ phrases: [String: String], voice: OEVoice = .default) -> Self {
37 |         guard self.length > 0 else {
   :
71 |     }
72 |
73 |     func setSpeechIPAMatchingAccessibilityIPA() {
   |          `- note: add '@available' attribute to enclosing instance method
74 |         let range = NSMakeRange(0, length)
75 |         let accessibilityIPAKey = NSAttributedString.Key.accessibilitySpeechIPANotation
76 |         let pronunciationIPAKey = NSAttributedString.Key(rawValue: AVSpeechSynthesisIPANotationAttribute)
   |                                                                    |- error: 'AVSpeechSynthesisIPANotationAttribute' is only available in macOS 10.14 or newer
   |                                                                    `- note: add 'if #available' version check
77 |
78 |         // Ranges are collected first so the string is not modified while it's being enumerated
[8/12] Compiling OEVoice OEVoice+AVFoundation.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:56:24: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 54 |     /// Init from AVSpeechSynthesisVoice
 55 |     /// - Parameter voice: voice
 56 |     init? (from voice: AVSpeechSynthesisVoice) {
    |     |                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |     `- note: add '@available' attribute to enclosing initializer
 57 |         self.init(from: voice.identifier)
 58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:67:16: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         |      `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:97:36: error: 'AttributedString' is only available in macOS 12 or newer
 94 | }
 95 |
 96 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 97 |     func speak(_ attributedString: AttributedString, synthesizer: AVSpeechSynthesizerIPA, willSpeak: ((String) -> Void)? = nil) throws {
    |          |                         `- error: 'AttributedString' is only available in macOS 12 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 98 |         try Self.speak(attributedString, oeVoice: self, synthesizer: synthesizer, willSpeak: willSpeak)
 99 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:101:43: error: 'AttributedString' is only available in macOS 12 or newer
 94 | }
 95 |
 96 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 97 |     func speak(_ attributedString: AttributedString, synthesizer: AVSpeechSynthesizerIPA, willSpeak: ((String) -> Void)? = nil) throws {
 98 |         try Self.speak(attributedString, oeVoice: self, synthesizer: synthesizer, willSpeak: willSpeak)
 99 |     }
100 |
101 |     static func speak(_ attributedString: AttributedString, oeVoice: OEVoice = .default, synthesizer: AVSpeechSynthesizerIPA, force: Bool = false, willSpeak: ((String) -> Void)? = nil) throws {
    |                 |                         `- error: 'AttributedString' is only available in macOS 12 or newer
    |                 `- note: add '@available' attribute to enclosing static method
102 |         guard let voice = oeVoice.voice else {
103 |             throw OEVoiceError.voiceNotFound
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:57:31: error: 'identifier' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 54 |     /// Init from AVSpeechSynthesisVoice
 55 |     /// - Parameter voice: voice
 56 |     init? (from voice: AVSpeechSynthesisVoice) {
    |     `- note: add '@available' attribute to enclosing initializer
 57 |         self.init(from: voice.identifier)
    |                               |- error: 'identifier' is only available in macOS 10.14 or newer
    |                               `- note: add 'if #available' version check
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:69:36: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
    |                                    |- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |                                    `- note: add 'if #available' version check
 70 |
 71 |         if installedIdentifiers.contains(identifier) {
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:69:80: error: 'identifier' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
    |                                                                                |- error: 'identifier' is only available in macOS 10.14 or newer
    |                                                                                `- note: add 'if #available' version check
 70 |
 71 |         if installedIdentifiers.contains(identifier) {
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:72:20: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
 70 |
 71 |         if installedIdentifiers.contains(identifier) {
 72 |             return AVSpeechSynthesisVoice(identifier: identifier)
    |                    |- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |                    `- note: add 'if #available' version check
 73 |         } else if let legacyIdentifier = installedIdentifiers.first(where: { legacyIdentifiers.contains($0) }) {
 74 |             return AVSpeechSynthesisVoice(identifier: legacyIdentifier)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:72:20: error: 'init(identifier:)' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
 70 |
 71 |         if installedIdentifiers.contains(identifier) {
 72 |             return AVSpeechSynthesisVoice(identifier: identifier)
    |                    |- error: 'init(identifier:)' is only available in macOS 10.14 or newer
    |                    `- note: add 'if #available' version check
 73 |         } else if let legacyIdentifier = installedIdentifiers.first(where: { legacyIdentifiers.contains($0) }) {
 74 |             return AVSpeechSynthesisVoice(identifier: legacyIdentifier)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:74:20: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
    :
 72 |             return AVSpeechSynthesisVoice(identifier: identifier)
 73 |         } else if let legacyIdentifier = installedIdentifiers.first(where: { legacyIdentifiers.contains($0) }) {
 74 |             return AVSpeechSynthesisVoice(identifier: legacyIdentifier)
    |                    |- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |                    `- note: add 'if #available' version check
 75 |         }
 76 |         return nil
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:74:20: error: 'init(identifier:)' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
    :
 72 |             return AVSpeechSynthesisVoice(identifier: identifier)
 73 |         } else if let legacyIdentifier = installedIdentifiers.first(where: { legacyIdentifiers.contains($0) }) {
 74 |             return AVSpeechSynthesisVoice(identifier: legacyIdentifier)
    |                    |- error: 'init(identifier:)' is only available in macOS 10.14 or newer
    |                    `- note: add 'if #available' version check
 75 |         }
 76 |         return nil
error: emit-module command failed with exit code 1 (use -v to see invocation)
[9/13] Emitting module OEVoice
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVAudioSession+setSpeechSession.swift:10:18: error: 'AVAudioSession' is unavailable in macOS
 8 | import AVFoundation
 9 |
10 | public extension AVAudioSession {
   |                  `- error: 'AVAudioSession' is unavailable in macOS
11 |     /// Sets audioSession to play on mute, pause other spoken audio and duck anything else.
12 |     func setSpeechSession() throws {
/Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h:29:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 27 | NS_SWIFT_SENDABLE
 28 | API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos)
 29 | @interface AVAudioSession : NSObject {
    |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 30 | @private
 31 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:47:54: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                    `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:69:43: error: 'AttributedString' is only available in macOS 12 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
67 |     }
68 |
69 |     public func speak(_ attributedString: AttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                         `- error: 'AttributedString' is only available in macOS 12 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
70 |         speak(NSMutableAttributedString(attributedString), voice: voice, willSpeak: willSpeak)
71 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:69:68: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
67 |     }
68 |
69 |     public func speak(_ attributedString: AttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
70 |         speak(NSMutableAttributedString(attributedString), voice: voice, willSpeak: willSpeak)
71 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:73:84: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
71 |     }
72 |
73 |     public func speak(_ mutableAttributedString: NSMutableAttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                                                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
74 |         // Copied so speaking does not alter the string that was supplied
75 |         let stringToSpeak = NSMutableAttributedString(attributedString: mutableAttributedString)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:11:38: error: 'AVSpeechSynthesizer' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              |                       `- error: 'AVSpeechSynthesizer' is only available in macOS 10.14 or newer
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:56:24: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 54 |     /// Init from AVSpeechSynthesisVoice
 55 |     /// - Parameter voice: voice
 56 |     init? (from voice: AVSpeechSynthesisVoice) {
    |     |                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |     `- note: add '@available' attribute to enclosing initializer
 57 |         self.init(from: voice.identifier)
 58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:67:16: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
  8 | import AVFoundation
  9 |
 10 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 11 |     static let idPrefix = "com.apple.ttsbundle."
 12 |     static let preferredLanguage = "en-US"
    :
 65 |     }
 66 |
 67 |     var voice: AVSpeechSynthesisVoice? {
    |         |      `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
    |         `- note: add '@available' attribute to enclosing property
 68 |         // speechVoices() is expensive so it's only called once
 69 |         let installedIdentifiers = AVSpeechSynthesisVoice.speechVoices().map(\.identifier)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:97:36: error: 'AttributedString' is only available in macOS 12 or newer
 94 | }
 95 |
 96 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 97 |     func speak(_ attributedString: AttributedString, synthesizer: AVSpeechSynthesizerIPA, willSpeak: ((String) -> Void)? = nil) throws {
    |          |                         `- error: 'AttributedString' is only available in macOS 12 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 98 |         try Self.speak(attributedString, oeVoice: self, synthesizer: synthesizer, willSpeak: willSpeak)
 99 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/OEVoice+AVFoundation.swift:101:43: error: 'AttributedString' is only available in macOS 12 or newer
 94 | }
 95 |
 96 | public extension OEVoice {
    |        `- note: add '@available' attribute to enclosing extension
 97 |     func speak(_ attributedString: AttributedString, synthesizer: AVSpeechSynthesizerIPA, willSpeak: ((String) -> Void)? = nil) throws {
 98 |         try Self.speak(attributedString, oeVoice: self, synthesizer: synthesizer, willSpeak: willSpeak)
 99 |     }
100 |
101 |     static func speak(_ attributedString: AttributedString, oeVoice: OEVoice = .default, synthesizer: AVSpeechSynthesizerIPA, force: Bool = false, willSpeak: ((String) -> Void)? = nil) throws {
    |                 |                         `- error: 'AttributedString' is only available in macOS 12 or newer
    |                 `- note: add '@available' attribute to enclosing static method
102 |         guard let voice = oeVoice.voice else {
103 |             throw OEVoiceError.voiceNotFound
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:10:20: error: 'AttributedString' is only available in macOS 12 or newer
 8 | import Foundation
 9 |
10 | internal extension AttributedString {
   |          |         `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing extension
11 |     /// Applies an IPA pronunciation to every occurrence of a phrase.
12 |     /// - Parameters:
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/AttributedString-extensions.swift:35:18: error: 'AttributedString' is only available in macOS 12 or newer
33 | }
34 |
35 | public extension AttributedString {
   |        |         `- error: 'AttributedString' is only available in macOS 12 or newer
   |        `- note: add '@available' attribute to enclosing extension
36 |     /// Adds accessible phonetic pronunciation for specified phrases.
37 |     /// - Parameter phrases: Dictionary of phrases and ipa pronunciations for those phrases
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:51:93: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
49 |     ///   - voice: Voice used to adjust the ipa pronunciations
50 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
51 |     func oldEnglishIPAAttributed(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                                  `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
52 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
53 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:62:80: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
60 |     ///   - voice: Voice used to adjust the ipa pronunciation
61 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
62 |     func oldEnglishIPAAttributed(_ ipa: String?, voice: OEVoice = .default) -> AttributedString {
   |          |                                                                     `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
63 |         AttributedString(self).accessibilityOldEnglishIPA(ipa, voice: voice)
64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:83:86: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
81 |     ///   - voice: Unused. Pronunciations are applied as supplied, without voice adjustments.
82 |     /// - Returns: `AttributedString` with accessible phonetic pronunciations for specified phrases
83 |     func accessibilityIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                           `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
84 |         AttributedString(self).accessibilityIPA(phrases)
85 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:94:96: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
92 |     ///   - voice: Voice used to adjust the ipa pronunciations
93 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
94 |     func accessibilityOldEnglishIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                                     `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
95 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
96 |     }
[10/13] Compiling OEVoice AVSpeechSynthesizerIPA.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:47:54: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                    `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:69:43: error: 'AttributedString' is only available in macOS 12 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
67 |     }
68 |
69 |     public func speak(_ attributedString: AttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                         `- error: 'AttributedString' is only available in macOS 12 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
70 |         speak(NSMutableAttributedString(attributedString), voice: voice, willSpeak: willSpeak)
71 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:69:68: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
67 |     }
68 |
69 |     public func speak(_ attributedString: AttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
70 |         speak(NSMutableAttributedString(attributedString), voice: voice, willSpeak: willSpeak)
71 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:73:84: error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
71 |     }
72 |
73 |     public func speak(_ mutableAttributedString: NSMutableAttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 |                                                                  `- error: 'AVSpeechSynthesisVoice' is only available in macOS 10.14 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
74 |         // Copied so speaking does not alter the string that was supplied
75 |         let stringToSpeak = NSMutableAttributedString(attributedString: mutableAttributedString)
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:11:38: error: 'AVSpeechSynthesizer' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              |                       `- error: 'AVSpeechSynthesizer' is only available in macOS 10.14 or newer
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:28:19: error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
14 |     public init(language: String) {
   |            `- note: add '@available' attribute to enclosing initializer
15 |         self.language = language
16 |         super.init()
   :
26 |             // Force AVSpeechSynthesizer to speak.
27 |             // This most likely initializes some internal language setting that references the first preferredLanguage in UserDefaults.
28 |             speak(AVSpeechUtterance(string: ""))
   |                   |- error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
   |                   `- note: add 'if #available' version check
29 |             stopSpeaking(at: .immediate)
30 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:51:65: error: 'AVSpeechSynthesisIPANotationAttribute' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
50 |         let range = NSString(string: ipaString).range(of: ipaString)
51 |         let pronunciationKey = NSAttributedString.Key(rawValue: AVSpeechSynthesisIPANotationAttribute)
   |                                                                 |- error: 'AVSpeechSynthesisIPANotationAttribute' is only available in macOS 10.14 or newer
   |                                                                 `- note: add 'if #available' version check
52 |         mutableAttributedString.setAttributes([pronunciationKey: ipaString], range: range)
53 |         print(mutableAttributedString.attributes(at: 0, longestEffectiveRange: nil, in: range))
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:55:25: error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
   :
53 |         print(mutableAttributedString.attributes(at: 0, longestEffectiveRange: nil, in: range))
54 |
55 |         let utterance = AVSpeechUtterance(attributedString: mutableAttributedString)
   |                         |- error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
   |                         `- note: add 'if #available' version check
56 |         print(utterance.attributedSpeechString.attributes(at: 0, longestEffectiveRange: nil, in: range))
57 |         utterance.voice = voice
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:55:25: error: 'init(attributedString:)' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
   :
53 |         print(mutableAttributedString.attributes(at: 0, longestEffectiveRange: nil, in: range))
54 |
55 |         let utterance = AVSpeechUtterance(attributedString: mutableAttributedString)
   |                         |- error: 'init(attributedString:)' is only available in macOS 10.14 or newer
   |                         `- note: add 'if #available' version check
56 |         print(utterance.attributedSpeechString.attributes(at: 0, longestEffectiveRange: nil, in: range))
57 |         utterance.voice = voice
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:56:25: error: 'attributedSpeechString' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
   :
54 |
55 |         let utterance = AVSpeechUtterance(attributedString: mutableAttributedString)
56 |         print(utterance.attributedSpeechString.attributes(at: 0, longestEffectiveRange: nil, in: range))
   |                         |- error: 'attributedSpeechString' is only available in macOS 10.14 or newer
   |                         `- note: add 'if #available' version check
57 |         utterance.voice = voice
58 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:65:55: error: 'identifier' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
45 |     ///   - voice: Voice to use
46 |     ///   - willSpeak: Runs just before speech and includes exact string to be spoken.
47 |     public func speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
48 |         let mutableAttributedString = NSMutableAttributedString(string: ipaString)
49 |
   :
63 |
64 |         willSpeak?(utterance.speechString)
65 |         print("speakIPA: \(ipaString), voice: \(voice.identifier), language: \(voice.language), AVLanguage: \(language), preferredLanguages: \(Locale.preferredLanguages)")
   |                                                       |- error: 'identifier' is only available in macOS 10.14 or newer
   |                                                       `- note: add 'if #available' version check
66 |         speak(utterance)
67 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:70:15: error: 'init(_:)' is only available in macOS 12 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
67 |     }
68 |
69 |     public func speak(_ attributedString: AttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
70 |         speak(NSMutableAttributedString(attributedString), voice: voice, willSpeak: willSpeak)
   |               |- error: 'init(_:)' is only available in macOS 12 or newer
   |               `- note: add 'if #available' version check
71 |     }
72 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:78:25: error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
71 |     }
72 |
73 |     public func speak(_ mutableAttributedString: NSMutableAttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
74 |         // Copied so speaking does not alter the string that was supplied
75 |         let stringToSpeak = NSMutableAttributedString(attributedString: mutableAttributedString)
76 |         stringToSpeak.setSpeechIPAMatchingAccessibilityIPA()
77 |
78 |         let utterance = AVSpeechUtterance(attributedString: stringToSpeak)
   |                         |- error: 'AVSpeechUtterance' is only available in macOS 10.14 or newer
   |                         `- note: add 'if #available' version check
79 |         utterance.voice = voice
80 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA.swift:78:25: error: 'init(attributedString:)' is only available in macOS 10.14 or newer
 9 | import AVFoundation
10 |
11 | public class AVSpeechSynthesizerIPA: AVSpeechSynthesizer {
   |              `- note: add '@available' attribute to enclosing class
12 |     let language: String
13 |
   :
71 |     }
72 |
73 |     public func speak(_ mutableAttributedString: NSMutableAttributedString, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil) {
   |                 `- note: add '@available' attribute to enclosing instance method
74 |         // Copied so speaking does not alter the string that was supplied
75 |         let stringToSpeak = NSMutableAttributedString(attributedString: mutableAttributedString)
76 |         stringToSpeak.setSpeechIPAMatchingAccessibilityIPA()
77 |
78 |         let utterance = AVSpeechUtterance(attributedString: stringToSpeak)
   |                         |- error: 'init(attributedString:)' is only available in macOS 10.14 or newer
   |                         `- note: add 'if #available' version check
79 |         utterance.voice = voice
80 |
[11/13] Compiling OEVoice AVAudioSession+setSpeechSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVAudioSession+setSpeechSession.swift:10:18: error: 'AVAudioSession' is unavailable in macOS
 8 | import AVFoundation
 9 |
10 | public extension AVAudioSession {
   |                  `- error: 'AVAudioSession' is unavailable in macOS
11 |     /// Sets audioSession to play on mute, pause other spoken audio and duck anything else.
12 |     func setSpeechSession() throws {
/Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h:29:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 27 | NS_SWIFT_SENDABLE
 28 | API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos)
 29 | @interface AVAudioSession : NSObject {
    |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 30 | @private
 31 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVAudioSession+setSpeechSession.swift:13:18: error: 'setCategory(_:options:)' is unavailable in macOS
11 |     /// Sets audioSession to play on mute, pause other spoken audio and duck anything else.
12 |     func setSpeechSession() throws {
13 |         try self.setCategory(.playback, options: [.interruptSpokenAudioAndMixWithOthers, .duckOthers])
   |                  `- error: 'setCategory(_:options:)' is unavailable in macOS
14 |     }
15 | }
AVFAudio.AVAudioSession.setCategory:3:13: note: 'setCategory(_:options:)' has been explicitly marked unavailable here
1 | class AVAudioSession {
2 | @available(macOS, unavailable)
3 |   open func setCategory(_ category: AVAudioSession.Category, options: AVAudioSession.CategoryOptions = []) throws}
  |             `- note: 'setCategory(_:options:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVAudioSession+setSpeechSession.swift:13:31: error: 'playback' is unavailable in macOS
11 |     /// Sets audioSession to play on mute, pause other spoken audio and duck anything else.
12 |     func setSpeechSession() throws {
13 |         try self.setCategory(.playback, options: [.interruptSpokenAudioAndMixWithOthers, .duckOthers])
   |                               `- error: 'playback' is unavailable in macOS
14 |     }
15 | }
/Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h:100:40: note: 'playback' has been explicitly marked unavailable here
 98 |
 99 | /*! Use this category for music tracks.*/
100 | OS_EXPORT AVAudioSessionCategory const AVAudioSessionCategoryPlayback			API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
    |                                        `- note: 'playback' has been explicitly marked unavailable here
101 |
102 | /*! Use this category when recording audio. */
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVAudioSession+setSpeechSession.swift:13:52: error: 'interruptSpokenAudioAndMixWithOthers' is unavailable in macOS
11 |     /// Sets audioSession to play on mute, pause other spoken audio and duck anything else.
12 |     func setSpeechSession() throws {
13 |         try self.setCategory(.playback, options: [.interruptSpokenAudioAndMixWithOthers, .duckOthers])
   |                                                    `- error: 'interruptSpokenAudioAndMixWithOthers' is unavailable in macOS
14 |     }
15 | }
AVFAudio.AVAudioSession.CategoryOptions.interruptSpokenAudioAndMixWithOthers:4:23: note: 'interruptSpokenAudioAndMixWithOthers' has been explicitly marked unavailable here
2 |   struct CategoryOptions {
3 | @available(macOS, unavailable)
4 |     public static var interruptSpokenAudioAndMixWithOthers: AVAudioSession.CategoryOptions { get }  }
  |                       `- note: 'interruptSpokenAudioAndMixWithOthers' has been explicitly marked unavailable here
5 | }
6 |
[12/13] Compiling OEVoice AVSpeechSynthesizerIPA+OE.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA+OE.swift:17:36: error: 'init(identifier:)' is only available in macOS 10.14 or newer
 8 | import AVFoundation
 9 |
10 | public extension AVSpeechSynthesizerIPA {
   |        `- note: add '@available' attribute to enclosing extension
11 |     static var oeVoiceSupported: AVSpeechSynthesizerIPA {
12 |         AVSpeechSynthesizerIPA(preferredLanguages: OEVoice.supportedLanguages)
13 |     }
14 |
15 |     func speakOETest1() {
   |          `- note: add '@available' attribute to enclosing instance method
16 |         // This should sound like "wath"
17 |         speakIPA("waːθ", voice: .init(identifier: "com.apple.ttsbundle.siri_Nicky_en-US_compact")!)
   |                                  |- error: 'init(identifier:)' is only available in macOS 10.14 or newer
   |                                  `- note: add 'if #available' version check
18 |     }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/AVSpeechSynthesizerIPA+OE.swift:22:36: error: 'init(identifier:)' is only available in macOS 10.14 or newer
 8 | import AVFoundation
 9 |
10 | public extension AVSpeechSynthesizerIPA {
   |        `- note: add '@available' attribute to enclosing extension
11 |     static var oeVoiceSupported: AVSpeechSynthesizerIPA {
12 |         AVSpeechSynthesizerIPA(preferredLanguages: OEVoice.supportedLanguages)
   :
18 |     }
19 |
20 |     func speakOETest2() {
   |          `- note: add '@available' attribute to enclosing instance method
21 |         // This should sound like "wath"
22 |         speakIPA("blɛnd", voice: .init(identifier: "com.apple.ttsbundle.siri_Nicky_en-US_compact")!)
   |                                   |- error: 'init(identifier:)' is only available in macOS 10.14 or newer
   |                                   `- note: add 'if #available' version check
23 |     }
24 | }
[13/13] Compiling OEVoice String-extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:51:93: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
49 |     ///   - voice: Voice used to adjust the ipa pronunciations
50 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
51 |     func oldEnglishIPAAttributed(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                                  `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
52 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
53 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:62:80: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
60 |     ///   - voice: Voice used to adjust the ipa pronunciation
61 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
62 |     func oldEnglishIPAAttributed(_ ipa: String?, voice: OEVoice = .default) -> AttributedString {
   |          |                                                                     `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
63 |         AttributedString(self).accessibilityOldEnglishIPA(ipa, voice: voice)
64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:83:86: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
81 |     ///   - voice: Unused. Pronunciations are applied as supplied, without voice adjustments.
82 |     /// - Returns: `AttributedString` with accessible phonetic pronunciations for specified phrases
83 |     func accessibilityIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                           `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
84 |         AttributedString(self).accessibilityIPA(phrases)
85 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:94:96: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
92 |     ///   - voice: Voice used to adjust the ipa pronunciations
93 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
94 |     func accessibilityOldEnglishIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          |                                                                                     `- error: 'AttributedString' is only available in macOS 12 or newer
   |          `- note: add '@available' attribute to enclosing instance method
95 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
96 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:52:9: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
49 |     ///   - voice: Voice used to adjust the ipa pronunciations
50 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
51 |     func oldEnglishIPAAttributed(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
52 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
   |         |- error: 'AttributedString' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
53 |     }
54 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:52:9: error: 'init(_:attributes:)' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
49 |     ///   - voice: Voice used to adjust the ipa pronunciations
50 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
51 |     func oldEnglishIPAAttributed(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
52 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
   |         |- error: 'init(_:attributes:)' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
53 |     }
54 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:63:9: error: 'AttributedString' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
60 |     ///   - voice: Voice used to adjust the ipa pronunciation
61 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
62 |     func oldEnglishIPAAttributed(_ ipa: String?, voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
63 |         AttributedString(self).accessibilityOldEnglishIPA(ipa, voice: voice)
   |         |- error: 'AttributedString' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
64 |     }
65 | }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:63:9: error: 'init(_:attributes:)' is only available in macOS 12 or newer
41 | }
42 |
43 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
44 |     /// Create an `AttributedString` with accessible Old English IPA pronunciation for specified phrases.
45 |     /// WARNING: User voice may not match supported OEVoice so pronunciations may be incorrect
   :
60 |     ///   - voice: Voice used to adjust the ipa pronunciation
61 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
62 |     func oldEnglishIPAAttributed(_ ipa: String?, voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
63 |         AttributedString(self).accessibilityOldEnglishIPA(ipa, voice: voice)
   |         |- error: 'init(_:attributes:)' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
64 |     }
65 | }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:84:9: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
81 |     ///   - voice: Unused. Pronunciations are applied as supplied, without voice adjustments.
82 |     /// - Returns: `AttributedString` with accessible phonetic pronunciations for specified phrases
83 |     func accessibilityIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
84 |         AttributedString(self).accessibilityIPA(phrases)
   |         |- error: 'AttributedString' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:84:9: error: 'init(_:attributes:)' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
81 |     ///   - voice: Unused. Pronunciations are applied as supplied, without voice adjustments.
82 |     /// - Returns: `AttributedString` with accessible phonetic pronunciations for specified phrases
83 |     func accessibilityIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
84 |         AttributedString(self).accessibilityIPA(phrases)
   |         |- error: 'init(_:attributes:)' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:95:9: error: 'AttributedString' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
92 |     ///   - voice: Voice used to adjust the ipa pronunciations
93 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
94 |     func accessibilityOldEnglishIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
95 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
   |         |- error: 'AttributedString' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
96 |     }
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/OEVoice/extensions/String-extensions.swift:95:9: error: 'init(_:attributes:)' is only available in macOS 12 or newer
75 | }
76 |
77 | public extension String {
   |        `- note: add '@available' attribute to enclosing extension
78 |     /// Adds accessible phonetic pronunciation for specified phrases.
79 |     /// - Parameters:
   :
92 |     ///   - voice: Voice used to adjust the ipa pronunciations
93 |     /// - Returns: `AttributedString` with accessible Old Egnlish IPA pronunciations for specified phrases
94 |     func accessibilityOldEnglishIPA(_ phrases: [String: String], voice: OEVoice = .default) -> AttributedString {
   |          `- note: add '@available' attribute to enclosing instance method
95 |         AttributedString(self).accessibilityOldEnglishIPA(phrases, voice: voice)
   |         |- error: 'init(_:attributes:)' is only available in macOS 12 or newer
   |         `- note: add 'if #available' version check
96 |     }
97 | }
BUILD FAILURE 6.3 macosSpm