The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of KeychainAccess, reference master (e0c7ee), with Swift 6.0 for macOS (SPM) on 3 Nov 2024 13:48:29 UTC.

Swift 6 data race errors: 14

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/kishikawakatsumi/KeychainAccess.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kishikawakatsumi/KeychainAccess
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e0c7eeb Remove ruby related files.
Cloned https://github.com/kishikawakatsumi/KeychainAccess.git
Revision (git rev-parse @):
e0c7eebc5a4465a3c4680764f26b7a61f567cdaf
SUCCESS checkout https://github.com/kishikawakatsumi/KeychainAccess.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "keychainaccess",
      "name": "KeychainAccess",
      "url": "https://github.com/kishikawakatsumi/KeychainAccess.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/KeychainAccess",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git
[1/4389] Fetching keychainaccess
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git from cache (1.37s)
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at master (e0c7eeb)
warning: '.resolve-product-dependencies': dependency 'keychainaccess' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/kishikawakatsumi/KeychainAccess.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/4] Emitting module KeychainAccess
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:216:23: warning: static property 'userPresence' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 214 |      */
 215 |     @available(iOS 8.0, macOS 10.10, watchOS 2.0, tvOS 8.0, *)
 216 |     public static let userPresence = AuthenticationPolicy(rawValue: 1 << 0)
     |                       |- warning: static property 'userPresence' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'userPresence' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 217 |
 218 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:224:23: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 222 |      */
 223 |     @available(iOS 11.3, macOS 10.13.4, watchOS 4.3, tvOS 11.3, *)
 224 |     public static let biometryAny = AuthenticationPolicy(rawValue: 1 << 1)
     |                       |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'biometryAny' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 225 |
 226 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:233:23: warning: static property 'touchIDAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 231 |     @available(watchOS, introduced: 2.0, deprecated: 4.3, renamed: "biometryAny")
 232 |     @available(tvOS, introduced: 9.0, deprecated: 11.3, renamed: "biometryAny")
 233 |     public static let touchIDAny = AuthenticationPolicy(rawValue: 1 << 1)
     |                       |- warning: static property 'touchIDAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'touchIDAny' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 234 |
 235 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:240:23: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 238 |      */
 239 |     @available(iOS 11.3, macOS 10.13, watchOS 4.3, tvOS 11.3, *)
 240 |     public static let biometryCurrentSet = AuthenticationPolicy(rawValue: 1 << 3)
     |                       |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'biometryCurrentSet' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 241 |
 242 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:249:23: warning: static property 'touchIDCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 247 |     @available(watchOS, introduced: 2.0, deprecated: 4.3, renamed: "biometryCurrentSet")
 248 |     @available(tvOS, introduced: 9.0, deprecated: 11.3, renamed: "biometryCurrentSet")
 249 |     public static let touchIDCurrentSet = AuthenticationPolicy(rawValue: 1 << 3)
     |                       |- warning: static property 'touchIDCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'touchIDCurrentSet' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 250 |
 251 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:255:23: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 253 |      */
 254 |     @available(iOS 9.0, macOS 10.11, watchOS 2.0, tvOS 9.0, *)
 255 |     public static let devicePasscode = AuthenticationPolicy(rawValue: 1 << 4)
     |                       |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'devicePasscode' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 256 |
 257 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:264:23: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 262 |     @available(watchOS, unavailable)
 263 |     @available(tvOS, unavailable)
 264 |     public static let watch = AuthenticationPolicy(rawValue: 1 << 5)
     |                       |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'watch' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 265 |
 266 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:271:23: warning: static property 'or' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 269 |      */
 270 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 271 |     public static let or = AuthenticationPolicy(rawValue: 1 << 14)
     |                       |- warning: static property 'or' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'or' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 272 |
 273 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:278:23: warning: static property 'and' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 276 |      */
 277 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 278 |     public static let and = AuthenticationPolicy(rawValue: 1 << 15)
     |                       |- warning: static property 'and' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'and' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 279 |
 280 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:284:23: warning: static property 'privateKeyUsage' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 282 |      */
 283 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 284 |     public static let privateKeyUsage = AuthenticationPolicy(rawValue: 1 << 30)
     |                       |- warning: static property 'privateKeyUsage' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'privateKeyUsage' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 285 |
 286 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:291:23: warning: static property 'applicationPassword' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 289 |      */
 290 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 291 |     public static let applicationPassword = AuthenticationPolicy(rawValue: 1 << 31)
     |                       |- warning: static property 'applicationPassword' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'applicationPassword' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 292 |
 293 |     #if swift(>=2.3)
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1253:13: warning: let 'SynchronizableAny' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1251 | private let AttributePath = String(kSecAttrPath)
1252 |
1253 | private let SynchronizableAny = kSecAttrSynchronizableAny
     |             `- warning: let 'SynchronizableAny' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1254 |
1255 | /** Search Constants */
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  24 | // THE SOFTWARE.
  25 |
  26 | import Foundation
     | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  27 | import Security
  28 | #if os(iOS) || os(macOS)
     :
1251 | private let AttributePath = String(kSecAttrPath)
1252 |
1253 | private let SynchronizableAny = kSecAttrSynchronizableAny
     |             |- note: annotate 'SynchronizableAny' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1254 |
1255 | /** Search Constants */
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1257:13: warning: let 'MatchLimitOne' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1255 | /** Search Constants */
1256 | private let MatchLimit = String(kSecMatchLimit)
1257 | private let MatchLimitOne = kSecMatchLimitOne
     |             |- warning: let 'MatchLimitOne' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
     |             |- note: annotate 'MatchLimitOne' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1258 | private let MatchLimitAll = kSecMatchLimitAll
1259 |
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1258:13: warning: let 'MatchLimitAll' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1256 | private let MatchLimit = String(kSecMatchLimit)
1257 | private let MatchLimitOne = kSecMatchLimitOne
1258 | private let MatchLimitAll = kSecMatchLimitAll
     |             |- warning: let 'MatchLimitAll' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
     |             |- note: annotate 'MatchLimitAll' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1259 |
1260 | /** Return Type Key Constants */
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[4/4] Compiling KeychainAccess Keychain.swift
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:854:23: warning: unnecessary check for 'macOS'; enclosing scope ensures guard will always be true
 846 |             }
 847 |             #else
 848 |             if #available(macOS 10.11, *) {
     |             `- note: enclosing scope here
 849 |                 if let authenticationUI = options.authenticationUI {
 850 |                     query[UseAuthenticationUI] = authenticationUI.rawValue
     :
 852 |                     query[UseAuthenticationUI] = UseAuthenticationUIFail
 853 |                 }
 854 |             } else if #available(macOS 10.10, *) {
     |                       `- warning: unnecessary check for 'macOS'; enclosing scope ensures guard will always be true
 855 |                 query[UseNoAuthenticationUI] = kCFBooleanTrue
 856 |             }
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:216:23: warning: static property 'userPresence' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 214 |      */
 215 |     @available(iOS 8.0, macOS 10.10, watchOS 2.0, tvOS 8.0, *)
 216 |     public static let userPresence = AuthenticationPolicy(rawValue: 1 << 0)
     |                       |- warning: static property 'userPresence' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'userPresence' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 217 |
 218 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:224:23: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 222 |      */
 223 |     @available(iOS 11.3, macOS 10.13.4, watchOS 4.3, tvOS 11.3, *)
 224 |     public static let biometryAny = AuthenticationPolicy(rawValue: 1 << 1)
     |                       |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'biometryAny' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 225 |
 226 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:233:23: warning: static property 'touchIDAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 231 |     @available(watchOS, introduced: 2.0, deprecated: 4.3, renamed: "biometryAny")
 232 |     @available(tvOS, introduced: 9.0, deprecated: 11.3, renamed: "biometryAny")
 233 |     public static let touchIDAny = AuthenticationPolicy(rawValue: 1 << 1)
     |                       |- warning: static property 'touchIDAny' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'touchIDAny' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 234 |
 235 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:240:23: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 238 |      */
 239 |     @available(iOS 11.3, macOS 10.13, watchOS 4.3, tvOS 11.3, *)
 240 |     public static let biometryCurrentSet = AuthenticationPolicy(rawValue: 1 << 3)
     |                       |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'biometryCurrentSet' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 241 |
 242 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:249:23: warning: static property 'touchIDCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 247 |     @available(watchOS, introduced: 2.0, deprecated: 4.3, renamed: "biometryCurrentSet")
 248 |     @available(tvOS, introduced: 9.0, deprecated: 11.3, renamed: "biometryCurrentSet")
 249 |     public static let touchIDCurrentSet = AuthenticationPolicy(rawValue: 1 << 3)
     |                       |- warning: static property 'touchIDCurrentSet' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'touchIDCurrentSet' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 250 |
 251 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:255:23: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 253 |      */
 254 |     @available(iOS 9.0, macOS 10.11, watchOS 2.0, tvOS 9.0, *)
 255 |     public static let devicePasscode = AuthenticationPolicy(rawValue: 1 << 4)
     |                       |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'devicePasscode' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 256 |
 257 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:264:23: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 262 |     @available(watchOS, unavailable)
 263 |     @available(tvOS, unavailable)
 264 |     public static let watch = AuthenticationPolicy(rawValue: 1 << 5)
     |                       |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'watch' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 265 |
 266 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:271:23: warning: static property 'or' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 269 |      */
 270 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 271 |     public static let or = AuthenticationPolicy(rawValue: 1 << 14)
     |                       |- warning: static property 'or' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'or' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 272 |
 273 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:278:23: warning: static property 'and' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 276 |      */
 277 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 278 |     public static let and = AuthenticationPolicy(rawValue: 1 << 15)
     |                       |- warning: static property 'and' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'and' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 279 |
 280 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:284:23: warning: static property 'privateKeyUsage' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 282 |      */
 283 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 284 |     public static let privateKeyUsage = AuthenticationPolicy(rawValue: 1 << 30)
     |                       |- warning: static property 'privateKeyUsage' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'privateKeyUsage' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 285 |
 286 |     /**
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:291:23: warning: static property 'applicationPassword' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 207 | }
 208 |
 209 | public struct AuthenticationPolicy: OptionSet {
     |               `- note: consider making struct 'AuthenticationPolicy' conform to the 'Sendable' protocol
 210 |     /**
 211 |      User presence policy using Touch ID or Passcode. Touch ID does not
     :
 289 |      */
 290 |     @available(iOS 9.0, macOS 10.12.1, watchOS 2.0, tvOS 9.0, *)
 291 |     public static let applicationPassword = AuthenticationPolicy(rawValue: 1 << 31)
     |                       |- warning: static property 'applicationPassword' is not concurrency-safe because non-'Sendable' type 'AuthenticationPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'applicationPassword' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 292 |
 293 |     #if swift(>=2.3)
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1253:13: warning: let 'SynchronizableAny' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1251 | private let AttributePath = String(kSecAttrPath)
1252 |
1253 | private let SynchronizableAny = kSecAttrSynchronizableAny
     |             `- warning: let 'SynchronizableAny' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1254 |
1255 | /** Search Constants */
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  24 | // THE SOFTWARE.
  25 |
  26 | import Foundation
     | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  27 | import Security
  28 | #if os(iOS) || os(macOS)
     :
1251 | private let AttributePath = String(kSecAttrPath)
1252 |
1253 | private let SynchronizableAny = kSecAttrSynchronizableAny
     |             |- note: annotate 'SynchronizableAny' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1254 |
1255 | /** Search Constants */
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1257:13: warning: let 'MatchLimitOne' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1255 | /** Search Constants */
1256 | private let MatchLimit = String(kSecMatchLimit)
1257 | private let MatchLimitOne = kSecMatchLimitOne
     |             |- warning: let 'MatchLimitOne' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
     |             |- note: annotate 'MatchLimitOne' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1258 | private let MatchLimitAll = kSecMatchLimitAll
1259 |
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Lib/KeychainAccess/Keychain.swift:1258:13: warning: let 'MatchLimitAll' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
1256 | private let MatchLimit = String(kSecMatchLimit)
1257 | private let MatchLimitOne = kSecMatchLimitOne
1258 | private let MatchLimitAll = kSecMatchLimitAll
     |             |- warning: let 'MatchLimitAll' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
     |             |- note: annotate 'MatchLimitAll' with '@MainActor' if property should only be accessed from the main actor
     |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1259 |
1260 | /** Return Type Key Constants */
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
Build complete! (6.85s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "KeychainAccess",
  "name" : "KeychainAccess",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "KeychainAccess",
      "targets" : [
        "KeychainAccess"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "KeychainAccess",
      "module_type" : "SwiftTarget",
      "name" : "KeychainAccess",
      "path" : "Lib/KeychainAccess",
      "product_memberships" : [
        "KeychainAccess"
      ],
      "sources" : [
        "Keychain.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.