The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of SwiftKeychain, reference v1.0.0 (7639ff), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 16:09:31 UTC.

Swift 6 data race errors: 6

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ShenghaiWang/SwiftKeychain.git
Reference: v1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ShenghaiWang/SwiftKeychain
 * tag               v1.0.0     -> FETCH_HEAD
HEAD is now at 7639ff4 Update version
Cloned https://github.com/ShenghaiWang/SwiftKeychain.git
Revision (git rev-parse @):
7639ff424dad6ad530e01b641ae8a3296f05d4ef
SUCCESS checkout https://github.com/ShenghaiWang/SwiftKeychain.git at v1.0.0
Fetching https://github.com/apple/swift-docc-symbolkit
Fetching https://github.com/apple/swift-docc-plugin
[1/2049] Fetching swift-docc-plugin
[227/5424] Fetching swift-docc-plugin, swift-docc-symbolkit
Fetched https://github.com/apple/swift-docc-symbolkit from cache (1.17s)
Fetched https://github.com/apple/swift-docc-plugin from cache (1.17s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.3.0 (1.76s)
Computing version for https://github.com/apple/swift-docc-symbolkit
Computed https://github.com/apple/swift-docc-symbolkit at 1.0.0 (0.63s)
Creating working copy for https://github.com/apple/swift-docc-symbolkit
Working copy of https://github.com/apple/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.3.0
========================================
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": "swiftkeychain",
      "name": "SwiftKeychain",
      "url": "https://github.com/ShenghaiWang/SwiftKeychain.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftKeychain",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/ShenghaiWang/SwiftKeychain.git
[1/76] Fetching swiftkeychain
Fetched https://github.com/ShenghaiWang/SwiftKeychain.git from cache (0.62s)
Creating working copy for https://github.com/ShenghaiWang/SwiftKeychain.git
Working copy of https://github.com/ShenghaiWang/SwiftKeychain.git resolved at v1.0.0 (7639ff4)
warning: '.resolve-product-dependencies': dependency 'swiftkeychain' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/ShenghaiWang/SwiftKeychain.git
https://github.com/ShenghaiWang/SwiftKeychain.git
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "SwiftKeychain",
  "name" : "SwiftKeychain",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftKeychain",
      "targets" : [
        "SwiftKeychain"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftKeychainTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeychainTests",
      "path" : "Tests/SwiftKeychainTests",
      "sources" : [
        "SwiftKeychainTests.swift"
      ],
      "target_dependencies" : [
        "SwiftKeychain"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftKeychain",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeychain",
      "path" : "Sources/SwiftKeychain",
      "product_memberships" : [
        "SwiftKeychain"
      ],
      "sources" : [
        "AttibuteValueType/AccessibilityValue.swift",
        "AttibuteValueType/AuthenticationType.swift",
        "AttibuteValueType/CertificateEncoding.swift",
        "AttibuteValueType/CertificateType.swift",
        "AttibuteValueType/KeyClass.swift",
        "AttibuteValueType/KeyType.swift",
        "AttibuteValueType/ProtocolType.swift",
        "Extension/SecAccess.swift",
        "Extension/SecAccessControl.swift",
        "Extension/SecPolicy.swift",
        "Item/Certificate.swift",
        "Item/GenericPassword.swift",
        "Item/Identity.swift",
        "Item/InternetPassword.swift",
        "Item/Item.swift",
        "Item/ItemValue.swift",
        "Item/Key.swift",
        "Item/KeyValue.swift",
        "KeychainError.swift",
        "Result/OperationResult.swift",
        "Result/ResultKey.swift",
        "Search/SearchAttribute.swift",
        "SwiftKeychain.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/26] Emitting module SwiftKeychain
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:20:23: warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       `- warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
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/Sources/SwiftKeychain/Item/Item.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 1 | import Foundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 2 |
 3 | public enum Item {
   :
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       |- note: add '@MainActor' to make static property 'genericPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:21:23: warning: static property 'internetPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
   |                       |- warning: static property 'internetPassword' 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: add '@MainActor' to make static property 'internetPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
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/Sources/SwiftKeychain/Item/Item.swift:22:23: warning: static property 'certificate' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
   |                       |- warning: static property 'certificate' 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: add '@MainActor' to make static property 'certificate' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
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/Sources/SwiftKeychain/Item/Item.swift:23:23: warning: static property 'key' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
   |                       |- warning: static property 'key' 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: add '@MainActor' to make static property 'key' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     public static let identity = kSecClassIdentity
25 | }
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/Sources/SwiftKeychain/Item/Item.swift:24:23: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
   |                       |- warning: static property 'identity' 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: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | }
26 |
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/Sources/SwiftKeychain/SwiftKeychain.swift:6:24: warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// The main class handles keychain operations(`Add`, `Search`, `Update` and `Delete`)
  5 | public class SwiftKeychain {
  6 |     private static var queue: DispatchQueue = {
    |                        |- warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'queue' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'queue' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |         let queue = DispatchQueue(label: "swift.keychain.tw")
  8 |         return queue
[6/28] Compiling SwiftKeychain SearchAttribute.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:6:24: warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// The main class handles keychain operations(`Add`, `Search`, `Update` and `Delete`)
  5 | public class SwiftKeychain {
  6 |     private static var queue: DispatchQueue = {
    |                        |- warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'queue' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'queue' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |         let queue = DispatchQueue(label: "swift.keychain.tw")
  8 |         return queue
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:34: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |                                  `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:49: warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |                                                 `- warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Result/ResultKey.swift:3:13: note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum ResultKey {
   |             `- note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 4 |     /// A key whose value is a Boolean indicating whether or not to return item data.
 5 |     case data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:76: warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                                                            `- warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Result/ResultKey.swift:3:13: note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum ResultKey {
   |             `- note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 4 |     /// A key whose value is a Boolean indicating whether or not to return item data.
 5 |     case data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:71: warning: capture of 'newItem' with non-sendable type 'Item' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                                                       `- warning: capture of 'newItem' with non-sendable type 'Item' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:52:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 50 |         await withCheckedContinuation { continuation in
 51 |             add(item: item, results: results) { result in
 52 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 53 |             }
 54 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:105:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
103 |         await withCheckedContinuation { continuation in
104 |             search(item: item, with: searchAttributes, results: results) { result in
105 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 |             }
107 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:157:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
155 |         await withCheckedContinuation { continuation in
156 |             update(item: item, with: searchAttributes, to: newItem) { result in
157 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
158 |             }
159 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:202:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
200 |         await withCheckedContinuation { continuation in
201 |             delete(item: item, with: searchAttributes) { result in
202 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
203 |             }
204 |         }
[7/28] Compiling SwiftKeychain SwiftKeychain.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:6:24: warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// The main class handles keychain operations(`Add`, `Search`, `Update` and `Delete`)
  5 | public class SwiftKeychain {
  6 |     private static var queue: DispatchQueue = {
    |                        |- warning: static property 'queue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'queue' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'queue' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |         let queue = DispatchQueue(label: "swift.keychain.tw")
  8 |         return queue
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:34: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |                                  `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:38:49: warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 36 |                            completion: @escaping (OperationResult) -> Void) {
 37 |         queue.async {
 38 |             completion(add(item: item, results: results))
    |                                                 `- warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 39 |         }
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Result/ResultKey.swift:3:13: note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum ResultKey {
   |             `- note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 4 |     /// A key whose value is a Boolean indicating whether or not to return item data.
 5 |     case data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:89:76: warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 87 |                               completion: @escaping (OperationResult) -> Void) {
 88 |         queue.async {
 89 |             completion(search(item: item, with: searchAttributes, results: results))
    |                                                                            `- warning: capture of 'results' with non-sendable type '[ResultKey]' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Result/ResultKey.swift:3:13: note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum ResultKey {
   |             `- note: consider making enum 'ResultKey' conform to the 'Sendable' protocol
 4 |     /// A key whose value is a Boolean indicating whether or not to return item data.
 5 |     case data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:141:71: warning: capture of 'newItem' with non-sendable type 'Item' in a '@Sendable' closure
139 |                               completion: @escaping (OperationResult) -> Void) {
140 |         queue.async {
141 |             completion(update(item: item, with: searchAttributes, to: newItem))
    |                                                                       `- warning: capture of 'newItem' with non-sendable type 'Item' in a '@Sendable' closure
142 |         }
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:13: warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |             |- warning: capture of 'completion' with non-sendable type '(OperationResult) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:37: warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |                                     `- warning: capture of 'item' with non-sendable type 'Item' in a '@Sendable' closure
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:3:13: note: consider making enum 'Item' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public enum Item {
   |             `- note: consider making enum 'Item' conform to the 'Sendable' protocol
 4 |     case genericPassword(GenericPassword)
 5 |     case internetPassword(InternetPassword)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:188:49: warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
186 |                               completion: @escaping (OperationResult) -> Void) {
187 |         queue.async {
188 |             completion(delete(item: item, with: searchAttributes))
    |                                                 `- warning: capture of 'searchAttributes' with non-sendable type '[SearchAttribute]' in a '@Sendable' closure
189 |         }
190 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Search/SearchAttribute.swift:4:13: note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  2 | import LocalAuthentication
  3 |
  4 | public enum SearchAttribute: KeyValue {
    |             `- note: consider making enum 'SearchAttribute' conform to the 'Sendable' protocol
  5 |     /// A key whose value indicates a policy with which a matching certificate or identity must verify.
  6 |     case policy(SecPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:52:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 50 |         await withCheckedContinuation { continuation in
 51 |             add(item: item, results: results) { result in
 52 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 53 |             }
 54 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:105:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
103 |         await withCheckedContinuation { continuation in
104 |             search(item: item, with: searchAttributes, results: results) { result in
105 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 |             }
107 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:157:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
155 |         await withCheckedContinuation { continuation in
156 |             update(item: item, with: searchAttributes, to: newItem) { result in
157 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
158 |             }
159 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/SwiftKeychain.swift:202:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
200 |         await withCheckedContinuation { continuation in
201 |             delete(item: item, with: searchAttributes) { result in
202 |                 continuation.resume(returning: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
203 |             }
204 |         }
[8/28] Compiling SwiftKeychain GenericPassword.swift
[9/28] Compiling SwiftKeychain Identity.swift
[10/28] Compiling SwiftKeychain ProtocolType.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Extension/SecAccess.swift:8:22: warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 6 |                            accessRef: UnsafeMutablePointer<SecAccess?>) throws -> SecAccess {
 7 |         var access: SecAccess?
 8 |         let status = SecAccessCreate(name as CFString, trustedlist as CFArray, &access)
   |                      `- warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 9 |         if let access {
10 |             return access
[11/28] Compiling SwiftKeychain SecAccess.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Extension/SecAccess.swift:8:22: warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 6 |                            accessRef: UnsafeMutablePointer<SecAccess?>) throws -> SecAccess {
 7 |         var access: SecAccess?
 8 |         let status = SecAccessCreate(name as CFString, trustedlist as CFArray, &access)
   |                      `- warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 9 |         if let access {
10 |             return access
[12/28] Compiling SwiftKeychain SecAccessControl.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Extension/SecAccess.swift:8:22: warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 6 |                            accessRef: UnsafeMutablePointer<SecAccess?>) throws -> SecAccess {
 7 |         var access: SecAccess?
 8 |         let status = SecAccessCreate(name as CFString, trustedlist as CFArray, &access)
   |                      `- warning: 'SecAccessCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
 9 |         if let access {
10 |             return access
[13/28] Compiling SwiftKeychain OperationResult.swift
[14/28] Compiling SwiftKeychain ResultKey.swift
[15/28] Compiling SwiftKeychain ItemValue.swift
[16/28] Compiling SwiftKeychain Key.swift
[17/28] Compiling SwiftKeychain SecPolicy.swift
[18/28] Compiling SwiftKeychain Certificate.swift
[19/28] Compiling SwiftKeychain KeyValue.swift
[20/28] Compiling SwiftKeychain KeychainError.swift
[21/28] Compiling SwiftKeychain InternetPassword.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:20:23: warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       `- warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
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/Sources/SwiftKeychain/Item/Item.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 1 | import Foundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 2 |
 3 | public enum Item {
   :
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       |- note: add '@MainActor' to make static property 'genericPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:21:23: warning: static property 'internetPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
   |                       |- warning: static property 'internetPassword' 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: add '@MainActor' to make static property 'internetPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
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/Sources/SwiftKeychain/Item/Item.swift:22:23: warning: static property 'certificate' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
   |                       |- warning: static property 'certificate' 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: add '@MainActor' to make static property 'certificate' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
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/Sources/SwiftKeychain/Item/Item.swift:23:23: warning: static property 'key' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
   |                       |- warning: static property 'key' 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: add '@MainActor' to make static property 'key' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     public static let identity = kSecClassIdentity
25 | }
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/Sources/SwiftKeychain/Item/Item.swift:24:23: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
   |                       |- warning: static property 'identity' 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: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | }
26 |
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 | }
[22/28] Compiling SwiftKeychain Item.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:20:23: warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       `- warning: static property 'genericPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
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/Sources/SwiftKeychain/Item/Item.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 1 | import Foundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 2 |
 3 | public enum Item {
   :
18 |     }
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
   |                       |- note: add '@MainActor' to make static property 'genericPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeychain/Item/Item.swift:21:23: warning: static property 'internetPassword' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
   |                       |- warning: static property 'internetPassword' 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: add '@MainActor' to make static property 'internetPassword' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
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/Sources/SwiftKeychain/Item/Item.swift:22:23: warning: static property 'certificate' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
20 |     public static let genericPassword = kSecClassGenericPassword
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
   |                       |- warning: static property 'certificate' 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: add '@MainActor' to make static property 'certificate' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
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/Sources/SwiftKeychain/Item/Item.swift:23:23: warning: static property 'key' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
21 |     public static let internetPassword = kSecClassInternetPassword
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
   |                       |- warning: static property 'key' 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: add '@MainActor' to make static property 'key' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     public static let identity = kSecClassIdentity
25 | }
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/Sources/SwiftKeychain/Item/Item.swift:24:23: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'CFString' may have shared mutable state; this is an error in the Swift 6 language mode
22 |     public static let certificate = kSecClassCertificate
23 |     public static let key = kSecClassKey
24 |     public static let identity = kSecClassIdentity
   |                       |- warning: static property 'identity' 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: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | }
26 |
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 | }
[23/28] Compiling SwiftKeychain CertificateType.swift
[24/28] Compiling SwiftKeychain KeyClass.swift
[25/28] Compiling SwiftKeychain KeyType.swift
[26/28] Compiling SwiftKeychain AccessibilityValue.swift
[27/28] Compiling SwiftKeychain AuthenticationType.swift
[28/28] Compiling SwiftKeychain CertificateEncoding.swift
Build complete! (14.69s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "SwiftKeychain",
  "name" : "SwiftKeychain",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftKeychain",
      "targets" : [
        "SwiftKeychain"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftKeychainTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeychainTests",
      "path" : "Tests/SwiftKeychainTests",
      "sources" : [
        "SwiftKeychainTests.swift"
      ],
      "target_dependencies" : [
        "SwiftKeychain"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftKeychain",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeychain",
      "path" : "Sources/SwiftKeychain",
      "product_memberships" : [
        "SwiftKeychain"
      ],
      "sources" : [
        "AttibuteValueType/AccessibilityValue.swift",
        "AttibuteValueType/AuthenticationType.swift",
        "AttibuteValueType/CertificateEncoding.swift",
        "AttibuteValueType/CertificateType.swift",
        "AttibuteValueType/KeyClass.swift",
        "AttibuteValueType/KeyType.swift",
        "AttibuteValueType/ProtocolType.swift",
        "Extension/SecAccess.swift",
        "Extension/SecAccessControl.swift",
        "Extension/SecPolicy.swift",
        "Item/Certificate.swift",
        "Item/GenericPassword.swift",
        "Item/Identity.swift",
        "Item/InternetPassword.swift",
        "Item/Item.swift",
        "Item/ItemValue.swift",
        "Item/Key.swift",
        "Item/KeyValue.swift",
        "KeychainError.swift",
        "Result/OperationResult.swift",
        "Result/ResultKey.swift",
        "Search/SearchAttribute.swift",
        "SwiftKeychain.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.