The Swift Package Index logo.Swift Package Index

Build Information

Failed to build AvWeather, reference master (1de683), with Swift 6.1 for Android on 27 May 2025 06:58:06 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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/bmonty/AvWeather.git
Reference: master
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/bmonty/AvWeather
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 1de6833 Support for TAF, async/await, and example application. (#6)
Cloned https://github.com/bmonty/AvWeather.git
Revision (git rev-parse @):
1de68338b6d122c2cf707bbe3398ecbb58fa7f1e
SUCCESS checkout https://github.com/bmonty/AvWeather.git at master
========================================
Build
========================================
Selected platform:         android
Swift version:             6.1
Building package at path:  $PWD
https://github.com/bmonty/AvWeather.git
https://github.com/bmonty/AvWeather.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "AvWeather",
  "name" : "AvWeather",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "AvWeather",
      "targets" : [
        "AvWeather"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AvWeatherTests",
      "module_type" : "SwiftTarget",
      "name" : "AvWeatherTests",
      "path" : "Tests/AvWeatherTests",
      "sources" : [
        "MetarTests.swift",
        "SigmetTests.swift",
        "TAFTests.swift",
        "URLProtocolAvWeatherMock.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "AvWeather"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AvWeather",
      "module_type" : "SwiftTarget",
      "name" : "AvWeather",
      "path" : "Sources/AvWeather",
      "product_memberships" : [
        "AvWeather"
      ],
      "sources" : [
        "AWCClient.swift",
        "Models/AvWeatherError.swift",
        "Models/Metar.swift",
        "Models/Sigmet.swift",
        "Models/TAF.swift",
        "Requests/AWCRequest.swift",
        "Requests/MetarRequest.swift",
        "Requests/SigmetRequest.swift",
        "Requests/TAFRequest.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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 -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:9f3c606dcd2a4f06d17ba472aa533c43685ba7ba19a5c9bc23518a066eb7f86a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/11] Compiling AvWeather Sigmet.swift
[4/12] Compiling AvWeather SigmetRequest.swift
[5/12] Compiling AvWeather AWCRequest.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/12] Compiling AvWeather TAF.swift
[7/12] Compiling AvWeather Metar.swift
[8/12] Emitting module AvWeather
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:69:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 67 |     }
 68 |
 69 |     public 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.
 70 |         switch elementName {
 71 |         case "data":
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/AvWeather/Requests/MetarRequest.swift:114:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
112 |     }
113 |
114 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
115 |         // found end of the METAR section, so save the data
116 |         if elementName == "METAR" {
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/AvWeather/Requests/MetarRequest.swift:349:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
347 |
348 |     // get data from an element
349 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
350 |         buffer += string
351 |     }
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/AvWeather/Requests/MetarRequest.swift:11:38: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class MetarRequest: NSObject, XMLParserDelegate, ADDSRequest {
    |                                      `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [Metar]
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:71:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 69 |     }
 70 |
 71 |     public 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.
 72 |
 73 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:139:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
137 |     }
138 |
139 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
140 |
141 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:387:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
385 |
386 |     // get data from an element
387 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
388 |         buffer += string
389 |     }
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/AvWeather/Requests/TAFRequest.swift:11:36: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class TAFRequest: NSObject, XMLParserDelegate, AWCRequest {
    |                                    `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [TAF]
[9/12] Compiling AvWeather AWCClient.swift
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:42:28: error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 40 |     public func send<T: AWCRequest>(_ request: T,
 41 |                                      completion: @escaping AWCClientCallback<T.Response>) {
 42 |         let task = session.dataTask(with: getUrl(for: request)) { data, response, error in
    |                            `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 43 |             guard let httpResponse = response as? HTTPURLResponse else {
 44 |                 completion(.failure(AvWeatherError.generic(message: "Can't get HTTP response info.")))
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:48:51: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 46 |             }
 47 |
 48 |             if !(200...299).contains(httpResponse.statusCode) {
    |                                                   `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 49 |                 completion(.failure(AvWeatherError.server(message: "Got status code \(httpResponse.statusCode) from server.")))
 50 |                 return
[10/12] Compiling AvWeather AvWeatherError.swift
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:42:28: error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 40 |     public func send<T: AWCRequest>(_ request: T,
 41 |                                      completion: @escaping AWCClientCallback<T.Response>) {
 42 |         let task = session.dataTask(with: getUrl(for: request)) { data, response, error in
    |                            `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 43 |             guard let httpResponse = response as? HTTPURLResponse else {
 44 |                 completion(.failure(AvWeatherError.generic(message: "Can't get HTTP response info.")))
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:48:51: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 46 |             }
 47 |
 48 |             if !(200...299).contains(httpResponse.statusCode) {
    |                                                   `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 49 |                 completion(.failure(AvWeatherError.server(message: "Got status code \(httpResponse.statusCode) from server.")))
 50 |                 return
[11/12] Compiling AvWeather MetarRequest.swift
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:69:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 67 |     }
 68 |
 69 |     public 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.
 70 |         switch elementName {
 71 |         case "data":
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/AvWeather/Requests/MetarRequest.swift:114:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
112 |     }
113 |
114 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
115 |         // found end of the METAR section, so save the data
116 |         if elementName == "METAR" {
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/AvWeather/Requests/MetarRequest.swift:349:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
347 |
348 |     // get data from an element
349 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
350 |         buffer += string
351 |     }
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/AvWeather/Requests/MetarRequest.swift:11:38: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class MetarRequest: NSObject, XMLParserDelegate, ADDSRequest {
    |                                      `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [Metar]
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:55:35: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 53 |     public func decode(with data: Data) throws -> [Metar] {
 54 |         // parse data from ADDS and create an array of Metar structs
 55 |         let xmlParser = XMLParser.init(data: data)
    |                                   `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 56 |         xmlParser.delegate = self
 57 |         if !xmlParser.parse() {
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:75:30: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 73 |                   let count = Int(strCount) else {
 74 |                       parsingErrorMessage = "Failed to parse METAR XML."
 75 |                       parser.abortParsing()
    |                              `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 76 |                       return
 77 |                   }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:82:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 80 |             guard count > 0 else {
 81 |                 parsingErrorMessage = "Invalid station string."
 82 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 83 |                 return
 84 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:126:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
124 |             if !buffer.isEmpty {
125 |                 parsingErrorMessage = buffer
126 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
127 |                 return
128 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:146:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
144 |                 } else {
145 |                     parsingErrorMessage = "Failed to parse date from METAR XML."
146 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
147 |                     return
148 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:153:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
151 |                 guard let value = Double(buffer) else {
152 |                     parsingErrorMessage = "Failed to parse latitude."
153 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
154 |                     return
155 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:161:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
159 |                 guard let value = Double(buffer) else {
160 |                     parsingErrorMessage = "Failed to parse longitude."
161 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
162 |                     return
163 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:169:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
167 |                 guard let value = Double(buffer) else {
168 |                     parsingErrorMessage = "Failed to parse temperature."
169 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
170 |                     return
171 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:177:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
175 |                 guard let value = Double(buffer) else {
176 |                     parsingErrorMessage = "Failed to parse dewpoint."
177 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
178 |                     return
179 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:185:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
183 |                 guard let value = Int(buffer) else {
184 |                     parsingErrorMessage = "Failed to parse wind direction."
185 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
186 |                     return
187 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:193:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
191 |                 guard let value = Int(buffer) else {
192 |                     parsingErrorMessage = "Failed to parse wind speed."
193 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
194 |                     return
195 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:201:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
199 |                 guard let value = Int(buffer) else {
200 |                     parsingErrorMessage = "Failed to parse wind gust."
201 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
202 |                     return
203 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:209:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
207 |                 guard let value = Double(buffer) else {
208 |                     parsingErrorMessage = "Failed to parse visbility."
209 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
210 |                     return
211 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:217:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
215 |                 guard let value = Double(buffer) else {
216 |                     parsingErrorMessage = "Failed to parse altimeter setting."
217 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
218 |                     return
219 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:225:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
223 |                 guard let value = Double(buffer) else {
224 |                     parsingErrorMessage = "Failed to parse sea level pressure."
225 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
226 |                     return
227 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:233:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
231 |                 guard let flightCategory = Metar.FlightCategory.init(rawValue: buffer) else {
232 |                     parsingErrorMessage = "Failed to parse flight category."
233 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
234 |                     return
235 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:241:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
239 |                 guard let value = Double(buffer) else {
240 |                     parsingErrorMessage = "Failed to parse three hour pressure tendency."
241 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
242 |                     return
243 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:249:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
247 |                 guard let value = Double(buffer) else {
248 |                     parsingErrorMessage = "Failed to parse maximum air temperature from the past 6 hours."
249 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
250 |                     return
251 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:257:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
255 |                 guard let value = Double(buffer) else {
256 |                     parsingErrorMessage = "Failed to parse minimum air temperature from the past 6 hours."
257 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
258 |                     return
259 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:265:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
263 |                 guard let value = Double(buffer) else {
264 |                     parsingErrorMessage = "Failed to parse maximum air temperature from the past 24 hours."
265 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
266 |                     return
267 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:273:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
271 |                 guard let value = Double(buffer) else {
272 |                     parsingErrorMessage = "Failed to parse minimum air temperature from the past 24 hours."
273 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
274 |                     return
275 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:281:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
279 |                 guard let value = Double(buffer) else {
280 |                     parsingErrorMessage = "Failed to parse precip since last METAR."
281 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
282 |                     return
283 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:289:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
287 |                 guard let value = Double(buffer) else {
288 |                     parsingErrorMessage = "Failed to parse precip from last 3 hours."
289 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
290 |                     return
291 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:297:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
295 |                 guard let value = Double(buffer) else {
296 |                     parsingErrorMessage = "Failed to parse precip from last 6 hours."
297 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
298 |                     return
299 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:305:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
303 |                 guard let value = Double(buffer) else {
304 |                     parsingErrorMessage = "Failed to parse precip from last 24 hours."
305 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
306 |                     return
307 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:313:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
311 |                 guard let value = Double(buffer) else {
312 |                     parsingErrorMessage = "Failed to parse snow depth."
313 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
314 |                     return
315 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:321:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
319 |                 guard let value = Int(buffer) else {
320 |                     parsingErrorMessage = "Failed to parse vertical visibility."
321 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
322 |                     return
323 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:329:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
327 |                 guard let metarType = Metar.MetarType.init(rawValue: buffer) else {
328 |                     parsingErrorMessage = "Failed to parse METAR type."
329 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
330 |                     return
331 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:337:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
335 |                 guard let value = Double(buffer) else {
336 |                     parsingErrorMessage = "Failed to parse station elevation."
337 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
338 |                     return
339 |                 }
[12/12] Compiling AvWeather TAFRequest.swift
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:71:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 69 |     }
 70 |
 71 |     public 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.
 72 |
 73 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:139:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
137 |     }
138 |
139 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
140 |
141 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:387:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
385 |
386 |     // get data from an element
387 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
388 |         buffer += string
389 |     }
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/AvWeather/Requests/TAFRequest.swift:11:36: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class TAFRequest: NSObject, XMLParserDelegate, AWCRequest {
    |                                    `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [TAF]
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:57:35: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 55 |     public func decode(with data: Data) throws -> [TAF] {
 56 |         // parse data from AWC and create an array of TAF structs
 57 |         let xmlParser = XMLParser.init(data: data)
    |                                   `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 58 |         xmlParser.delegate = self
 59 |         if !xmlParser.parse() {
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:79:30: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 77 |                   let count = Int(strCount) else {
 78 |                       parsingErrorMessage = "Failed to parse TAF XML."
 79 |                       parser.abortParsing()
    |                              `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 80 |                       return
 81 |                   }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:86:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 84 |             guard count > 0 else {
 85 |                 parsingErrorMessage = "Invalid station string."
 86 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 87 |                 return
 88 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:147:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
145 |             if !buffer.isEmpty {
146 |                 parsingErrorMessage = buffer
147 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
148 |             }
149 |             return
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:188:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
186 |                     } else {
187 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
188 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
189 |                         return
190 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:198:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
196 |                     } else {
197 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
198 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
199 |                         return
200 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:208:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
206 |                     } else {
207 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
208 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
209 |                         return
210 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:218:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
216 |                     } else {
217 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
218 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
219 |                         return
220 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:228:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
226 |                     guard let value = Double(buffer) else {
227 |                         parsingErrorMessage = "Failed to parse latitude."
228 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
229 |                         return
230 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:236:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
234 |                     guard let value = Double(buffer) else {
235 |                         parsingErrorMessage = "Failed to parse longitude."
236 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
237 |                         return
238 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:244:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
242 |                     guard let value = Double(buffer) else {
243 |                         parsingErrorMessage = "Failed to parse station elevation."
244 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
245 |                         return
246 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:262:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
260 |                     } else {
261 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
262 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
263 |                         return
264 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:271:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
269 |                     } else {
270 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
271 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
272 |                         return
273 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:278:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
276 |                     guard let changeIndicator = TAF.Forecast.ChangeIndicator(rawValue: buffer) else {
277 |                         parsingErrorMessage = "Failed to parse Forecast change indicator."
278 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
279 |                         return
280 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:289:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
287 |                     } else {
288 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
289 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
290 |                         return
291 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:296:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
294 |                     guard let value = Int(buffer) else {
295 |                         parsingErrorMessage = "Failed to parse probability."
296 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
297 |                         return
298 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:304:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
302 |                     guard let value = Int(buffer) else {
303 |                         parsingErrorMessage = "Failed to parse wind direction."
304 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
305 |                         return
306 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:312:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
310 |                     guard let value = Int(buffer) else {
311 |                         parsingErrorMessage = "Failed to parse wind speed."
312 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
313 |                         return
314 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:320:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
318 |                     guard let value = Int(buffer) else {
319 |                         parsingErrorMessage = "Failed to parse wind gust."
320 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
321 |                         return
322 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:328:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
326 |                     guard let value = Int(buffer) else {
327 |                         parsingErrorMessage = "Failed to parse wind shear direction."
328 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
329 |                         return
330 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:336:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
334 |                     guard let value = Int(buffer) else {
335 |                         parsingErrorMessage = "Failed to parse wind shear speed."
336 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
337 |                         return
338 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:344:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
342 |                     guard let value = Int(buffer) else {
343 |                         parsingErrorMessage = "Failed to parse wind shear height."
344 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
345 |                         return
346 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:352:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
350 |                     guard let value = Double(buffer) else {
351 |                         parsingErrorMessage = "Failed to parse visbility."
352 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
353 |                         return
354 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:360:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
358 |                     guard let value = Double(buffer) else {
359 |                         parsingErrorMessage = "Failed to parse altimeter inch Hg."
360 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
361 |                         return
362 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:368:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
366 |                     guard let value = Double(buffer) else {
367 |                         parsingErrorMessage = "Failed to parse vertical visbility."
368 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
369 |                         return
370 |                     }
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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:9f3c606dcd2a4f06d17ba472aa533c43685ba7ba19a5c9bc23518a066eb7f86a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/10] Compiling AvWeather SigmetRequest.swift
[3/11] Compiling AvWeather AWCRequest.swift
[4/11] Compiling AvWeather MetarRequest.swift
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:69:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 67 |     }
 68 |
 69 |     public 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.
 70 |         switch elementName {
 71 |         case "data":
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/AvWeather/Requests/MetarRequest.swift:114:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
112 |     }
113 |
114 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
115 |         // found end of the METAR section, so save the data
116 |         if elementName == "METAR" {
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/AvWeather/Requests/MetarRequest.swift:349:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
347 |
348 |     // get data from an element
349 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
350 |         buffer += string
351 |     }
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/AvWeather/Requests/MetarRequest.swift:11:38: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class MetarRequest: NSObject, XMLParserDelegate, ADDSRequest {
    |                                      `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [Metar]
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:55:35: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 53 |     public func decode(with data: Data) throws -> [Metar] {
 54 |         // parse data from ADDS and create an array of Metar structs
 55 |         let xmlParser = XMLParser.init(data: data)
    |                                   `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 56 |         xmlParser.delegate = self
 57 |         if !xmlParser.parse() {
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:75:30: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 73 |                   let count = Int(strCount) else {
 74 |                       parsingErrorMessage = "Failed to parse METAR XML."
 75 |                       parser.abortParsing()
    |                              `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 76 |                       return
 77 |                   }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:82:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 80 |             guard count > 0 else {
 81 |                 parsingErrorMessage = "Invalid station string."
 82 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 83 |                 return
 84 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:126:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
124 |             if !buffer.isEmpty {
125 |                 parsingErrorMessage = buffer
126 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
127 |                 return
128 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:146:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
144 |                 } else {
145 |                     parsingErrorMessage = "Failed to parse date from METAR XML."
146 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
147 |                     return
148 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:153:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
151 |                 guard let value = Double(buffer) else {
152 |                     parsingErrorMessage = "Failed to parse latitude."
153 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
154 |                     return
155 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:161:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
159 |                 guard let value = Double(buffer) else {
160 |                     parsingErrorMessage = "Failed to parse longitude."
161 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
162 |                     return
163 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:169:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
167 |                 guard let value = Double(buffer) else {
168 |                     parsingErrorMessage = "Failed to parse temperature."
169 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
170 |                     return
171 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:177:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
175 |                 guard let value = Double(buffer) else {
176 |                     parsingErrorMessage = "Failed to parse dewpoint."
177 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
178 |                     return
179 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:185:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
183 |                 guard let value = Int(buffer) else {
184 |                     parsingErrorMessage = "Failed to parse wind direction."
185 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
186 |                     return
187 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:193:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
191 |                 guard let value = Int(buffer) else {
192 |                     parsingErrorMessage = "Failed to parse wind speed."
193 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
194 |                     return
195 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:201:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
199 |                 guard let value = Int(buffer) else {
200 |                     parsingErrorMessage = "Failed to parse wind gust."
201 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
202 |                     return
203 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:209:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
207 |                 guard let value = Double(buffer) else {
208 |                     parsingErrorMessage = "Failed to parse visbility."
209 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
210 |                     return
211 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:217:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
215 |                 guard let value = Double(buffer) else {
216 |                     parsingErrorMessage = "Failed to parse altimeter setting."
217 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
218 |                     return
219 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:225:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
223 |                 guard let value = Double(buffer) else {
224 |                     parsingErrorMessage = "Failed to parse sea level pressure."
225 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
226 |                     return
227 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:233:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
231 |                 guard let flightCategory = Metar.FlightCategory.init(rawValue: buffer) else {
232 |                     parsingErrorMessage = "Failed to parse flight category."
233 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
234 |                     return
235 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:241:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
239 |                 guard let value = Double(buffer) else {
240 |                     parsingErrorMessage = "Failed to parse three hour pressure tendency."
241 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
242 |                     return
243 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:249:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
247 |                 guard let value = Double(buffer) else {
248 |                     parsingErrorMessage = "Failed to parse maximum air temperature from the past 6 hours."
249 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
250 |                     return
251 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:257:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
255 |                 guard let value = Double(buffer) else {
256 |                     parsingErrorMessage = "Failed to parse minimum air temperature from the past 6 hours."
257 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
258 |                     return
259 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:265:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
263 |                 guard let value = Double(buffer) else {
264 |                     parsingErrorMessage = "Failed to parse maximum air temperature from the past 24 hours."
265 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
266 |                     return
267 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:273:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
271 |                 guard let value = Double(buffer) else {
272 |                     parsingErrorMessage = "Failed to parse minimum air temperature from the past 24 hours."
273 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
274 |                     return
275 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:281:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
279 |                 guard let value = Double(buffer) else {
280 |                     parsingErrorMessage = "Failed to parse precip since last METAR."
281 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
282 |                     return
283 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:289:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
287 |                 guard let value = Double(buffer) else {
288 |                     parsingErrorMessage = "Failed to parse precip from last 3 hours."
289 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
290 |                     return
291 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:297:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
295 |                 guard let value = Double(buffer) else {
296 |                     parsingErrorMessage = "Failed to parse precip from last 6 hours."
297 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
298 |                     return
299 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:305:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
303 |                 guard let value = Double(buffer) else {
304 |                     parsingErrorMessage = "Failed to parse precip from last 24 hours."
305 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
306 |                     return
307 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:313:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
311 |                 guard let value = Double(buffer) else {
312 |                     parsingErrorMessage = "Failed to parse snow depth."
313 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
314 |                     return
315 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:321:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
319 |                 guard let value = Int(buffer) else {
320 |                     parsingErrorMessage = "Failed to parse vertical visibility."
321 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
322 |                     return
323 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:329:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
327 |                 guard let metarType = Metar.MetarType.init(rawValue: buffer) else {
328 |                     parsingErrorMessage = "Failed to parse METAR type."
329 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
330 |                     return
331 |                 }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:337:28: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
335 |                 guard let value = Double(buffer) else {
336 |                     parsingErrorMessage = "Failed to parse station elevation."
337 |                     parser.abortParsing()
    |                            `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
338 |                     return
339 |                 }
[5/11] Compiling AvWeather TAFRequest.swift
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:71:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 69 |     }
 70 |
 71 |     public 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.
 72 |
 73 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:139:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
137 |     }
138 |
139 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
140 |
141 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:387:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
385 |
386 |     // get data from an element
387 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
388 |         buffer += string
389 |     }
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/AvWeather/Requests/TAFRequest.swift:11:36: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class TAFRequest: NSObject, XMLParserDelegate, AWCRequest {
    |                                    `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [TAF]
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:57:35: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 55 |     public func decode(with data: Data) throws -> [TAF] {
 56 |         // parse data from AWC and create an array of TAF structs
 57 |         let xmlParser = XMLParser.init(data: data)
    |                                   `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 58 |         xmlParser.delegate = self
 59 |         if !xmlParser.parse() {
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:79:30: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 77 |                   let count = Int(strCount) else {
 78 |                       parsingErrorMessage = "Failed to parse TAF XML."
 79 |                       parser.abortParsing()
    |                              `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 80 |                       return
 81 |                   }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:86:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 84 |             guard count > 0 else {
 85 |                 parsingErrorMessage = "Invalid station string."
 86 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
 87 |                 return
 88 |             }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:147:24: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
145 |             if !buffer.isEmpty {
146 |                 parsingErrorMessage = buffer
147 |                 parser.abortParsing()
    |                        `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
148 |             }
149 |             return
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:188:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
186 |                     } else {
187 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
188 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
189 |                         return
190 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:198:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
196 |                     } else {
197 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
198 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
199 |                         return
200 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:208:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
206 |                     } else {
207 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
208 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
209 |                         return
210 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:218:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
216 |                     } else {
217 |                         parsingErrorMessage = "Failed to parse date from TAF XML."
218 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
219 |                         return
220 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:228:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
226 |                     guard let value = Double(buffer) else {
227 |                         parsingErrorMessage = "Failed to parse latitude."
228 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
229 |                         return
230 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:236:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
234 |                     guard let value = Double(buffer) else {
235 |                         parsingErrorMessage = "Failed to parse longitude."
236 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
237 |                         return
238 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:244:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
242 |                     guard let value = Double(buffer) else {
243 |                         parsingErrorMessage = "Failed to parse station elevation."
244 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
245 |                         return
246 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:262:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
260 |                     } else {
261 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
262 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
263 |                         return
264 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:271:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
269 |                     } else {
270 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
271 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
272 |                         return
273 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:278:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
276 |                     guard let changeIndicator = TAF.Forecast.ChangeIndicator(rawValue: buffer) else {
277 |                         parsingErrorMessage = "Failed to parse Forecast change indicator."
278 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
279 |                         return
280 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:289:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
287 |                     } else {
288 |                         parsingErrorMessage = "Failed to parse date from Forecast XML."
289 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
290 |                         return
291 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:296:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
294 |                     guard let value = Int(buffer) else {
295 |                         parsingErrorMessage = "Failed to parse probability."
296 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
297 |                         return
298 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:304:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
302 |                     guard let value = Int(buffer) else {
303 |                         parsingErrorMessage = "Failed to parse wind direction."
304 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
305 |                         return
306 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:312:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
310 |                     guard let value = Int(buffer) else {
311 |                         parsingErrorMessage = "Failed to parse wind speed."
312 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
313 |                         return
314 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:320:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
318 |                     guard let value = Int(buffer) else {
319 |                         parsingErrorMessage = "Failed to parse wind gust."
320 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
321 |                         return
322 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:328:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
326 |                     guard let value = Int(buffer) else {
327 |                         parsingErrorMessage = "Failed to parse wind shear direction."
328 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
329 |                         return
330 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:336:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
334 |                     guard let value = Int(buffer) else {
335 |                         parsingErrorMessage = "Failed to parse wind shear speed."
336 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
337 |                         return
338 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:344:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
342 |                     guard let value = Int(buffer) else {
343 |                         parsingErrorMessage = "Failed to parse wind shear height."
344 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
345 |                         return
346 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:352:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
350 |                     guard let value = Double(buffer) else {
351 |                         parsingErrorMessage = "Failed to parse visbility."
352 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
353 |                         return
354 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:360:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
358 |                     guard let value = Double(buffer) else {
359 |                         parsingErrorMessage = "Failed to parse altimeter inch Hg."
360 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
361 |                         return
362 |                     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:368:32: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
366 |                     guard let value = Double(buffer) else {
367 |                         parsingErrorMessage = "Failed to parse vertical visbility."
368 |                         parser.abortParsing()
    |                                `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'abortParsing'
369 |                         return
370 |                     }
[6/11] Compiling AvWeather Metar.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/11] Emitting module AvWeather
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/Requests/MetarRequest.swift:69:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 67 |     }
 68 |
 69 |     public 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.
 70 |         switch elementName {
 71 |         case "data":
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/AvWeather/Requests/MetarRequest.swift:114:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
112 |     }
113 |
114 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
115 |         // found end of the METAR section, so save the data
116 |         if elementName == "METAR" {
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/AvWeather/Requests/MetarRequest.swift:349:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
347 |
348 |     // get data from an element
349 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
350 |         buffer += string
351 |     }
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/AvWeather/Requests/MetarRequest.swift:11:38: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class MetarRequest: NSObject, XMLParserDelegate, ADDSRequest {
    |                                      `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [Metar]
/host/spi-builder-workspace/Sources/AvWeather/Requests/TAFRequest.swift:71:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 69 |     }
 70 |
 71 |     public 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.
 72 |
 73 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:139:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
137 |     }
138 |
139 |     public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
140 |
141 |         switch elementName {
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/AvWeather/Requests/TAFRequest.swift:387:34: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
385 |
386 |     // get data from an element
387 |     public func parser(_ parser: XMLParser, foundCharacters string: String) {
    |                                  `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
388 |         buffer += string
389 |     }
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/AvWeather/Requests/TAFRequest.swift:11:36: error: cannot find type 'XMLParserDelegate' in scope
  9 |
 10 |
 11 | public class TAFRequest: NSObject, XMLParserDelegate, AWCRequest {
    |                                    `- error: cannot find type 'XMLParserDelegate' in scope
 12 |
 13 |     public typealias Response = [TAF]
[8/11] Compiling AvWeather AWCClient.swift
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:42:28: error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 40 |     public func send<T: AWCRequest>(_ request: T,
 41 |                                      completion: @escaping AWCClientCallback<T.Response>) {
 42 |         let task = session.dataTask(with: getUrl(for: request)) { data, response, error in
    |                            `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 43 |             guard let httpResponse = response as? HTTPURLResponse else {
 44 |                 completion(.failure(AvWeatherError.generic(message: "Can't get HTTP response info.")))
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:48:51: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 46 |             }
 47 |
 48 |             if !(200...299).contains(httpResponse.statusCode) {
    |                                                   `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 49 |                 completion(.failure(AvWeatherError.server(message: "Got status code \(httpResponse.statusCode) from server.")))
 50 |                 return
[9/11] Compiling AvWeather AvWeatherError.swift
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:19:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 17 |
 18 |     private let awcHostUrlString = "https://aviationweather.gov"
 19 |     private let session: URLSession
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 20 |
 21 |     public init(session: URLSession = .shared) {
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                          `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
 22 |         self.session = session
 23 |     }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
  |                  `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:21:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 19 |     private let session: URLSession
 20 |
 21 |     public init(session: URLSession = .shared) {
    |                                        `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 22 |         self.session = session
 23 |     }
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:42:28: error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 40 |     public func send<T: AWCRequest>(_ request: T,
 41 |                                      completion: @escaping AWCClientCallback<T.Response>) {
 42 |         let task = session.dataTask(with: getUrl(for: request)) { data, response, error in
    |                            `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'dataTask'
 43 |             guard let httpResponse = response as? HTTPURLResponse else {
 44 |                 completion(.failure(AvWeatherError.generic(message: "Can't get HTTP response info.")))
/host/spi-builder-workspace/Sources/AvWeather/AWCClient.swift:48:51: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 46 |             }
 47 |
 48 |             if !(200...299).contains(httpResponse.statusCode) {
    |                                                   `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
 49 |                 completion(.failure(AvWeatherError.server(message: "Got status code \(httpResponse.statusCode) from server.")))
 50 |                 return
[10/11] Compiling AvWeather TAF.swift
[11/11] Compiling AvWeather Sigmet.swift
BUILD FAILURE 6.1 android