The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build CurrencyConverter, reference 0.2.4 (5ac7d6), with Swift 6.1 for Android on 15 Jun 2025 18:18:43 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pixyzehn/currency-converter.git
Reference: 0.2.4
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/pixyzehn/currency-converter
 * tag               0.2.4      -> FETCH_HEAD
HEAD is now at 5ac7d6b Protect array from concurrent mutations or reads
Cloned https://github.com/pixyzehn/currency-converter.git
Revision (git rev-parse @):
5ac7d6bf004df0c52cb4a1118ce1872ef5b220a8
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/pixyzehn/currency-converter.git at 0.2.4
========================================
Build
========================================
Selected platform:         android
Swift version:             6.1
Building package at path:  $PWD
https://github.com/pixyzehn/currency-converter.git
https://github.com/pixyzehn/currency-converter.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swiftlang/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "CurrencyConverter",
  "name" : "CurrencyConverter",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "CurrencyConverter",
      "targets" : [
        "CurrencyConverter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CurrencyConverterTests",
      "module_type" : "SwiftTarget",
      "name" : "CurrencyConverterTests",
      "path" : "Tests/CurrencyConverterTests",
      "sources" : [
        "CurrencyConverterTests.swift"
      ],
      "target_dependencies" : [
        "CurrencyConverter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CurrencyConverter",
      "module_type" : "SwiftTarget",
      "name" : "CurrencyConverter",
      "path" : "Sources/CurrencyConverter",
      "product_memberships" : [
        "CurrencyConverter"
      ],
      "sources" : [
        "CurrencyConverter.swift",
        "CurrencyRate.swift",
        "ReferenceRates.swift",
        "ReferenceRatesXMLParser.swift",
        "SafeCallback.swift",
        "XMLParserError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:d4adec85e5c000fff132a1b0de73467182c76318cbb55cea6ebedacb1b3c4ef0
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2082] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.38s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.4 (2.37s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3411] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.39s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.91s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.4
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-24593BA9C3E375BF.txt
[5/11] Compiling CurrencyConverter XMLParserError.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/11] Compiling CurrencyConverter CurrencyRate.swift
[7/11] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
[8/11] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
[9/11] Compiling CurrencyConverter SafeCallback.swift
[10/11] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 |     ///     - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 |     public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 |         guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
   |                      `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 |             return []
24 |         }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 |         }
56 |
57 |         let isoCurrencyCodes = Locale.isoCurrencyCodes
   |                                       `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 |         guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[11/11] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 34 |
 35 |     init(contentsOf url: URL = defaultXMLURL) {
 36 |         parser = XMLParser(contentsOf: url)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 37 |         super.init()
 38 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 36 |         parser = XMLParser(contentsOf: url)
 37 |         super.init()
 38 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 39 |     }
 40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 40 |
 41 |     init(data: Data) {
 42 |         parser = XMLParser(data: data)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 43 |         super.init()
 44 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 42 |         parser = XMLParser(data: data)
 43 |         super.init()
 44 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 45 |     }
 46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 46 |
 47 |     func parse() {
 48 |         parser?.parse()
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 78 |                 }
 79 |             case XMLParserKeys.currency.rawValue:
 80 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
    |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 81 |                     currencyRate.currencyCode = attribute.value
 82 |                 } else {
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:d4adec85e5c000fff132a1b0de73467182c76318cbb55cea6ebedacb1b3c4ef0
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
[0/1] Planning build
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/10] Compiling CurrencyConverter XMLParserError.swift
[5/10] Compiling CurrencyConverter SafeCallback.swift
[6/10] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 34 |
 35 |     init(contentsOf url: URL = defaultXMLURL) {
 36 |         parser = XMLParser(contentsOf: url)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 37 |         super.init()
 38 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 36 |         parser = XMLParser(contentsOf: url)
 37 |         super.init()
 38 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 39 |     }
 40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 40 |
 41 |     init(data: Data) {
 42 |         parser = XMLParser(data: data)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 43 |         super.init()
 44 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 42 |         parser = XMLParser(data: data)
 43 |         super.init()
 44 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 45 |     }
 46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 46 |
 47 |     func parse() {
 48 |         parser?.parse()
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 78 |                 }
 79 |             case XMLParserKeys.currency.rawValue:
 80 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
    |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 81 |                     currencyRate.currencyCode = attribute.value
 82 |                 } else {
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/10] Compiling CurrencyConverter CurrencyRate.swift
[8/10] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 |     ///     - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 |     public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 |         guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
   |                      `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 |             return []
24 |         }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 |         }
56 |
57 |         let isoCurrencyCodes = Locale.isoCurrencyCodes
   |                                       `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 |         guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[9/10] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
[10/10] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
BUILD FAILURE 6.1 android