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

Failed to build UpgradeAlert, reference main (9afcb0), with Swift 6.0 for Linux on 6 Nov 2024 18:22:22 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sentryco/UpgradeAlert.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/sentryco/UpgradeAlert
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 9afcb06 Minor tweaks
Cloned https://github.com/sentryco/UpgradeAlert.git
Revision (git rev-parse @):
9afcb0662e5408ddc7eeaf2be0836b2255447808
SUCCESS checkout https://github.com/sentryco/UpgradeAlert.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/sentryco/UpgradeAlert.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/14] Compiling UpgradeAlert UIAlertController+Ext.swift
[4/14] Compiling UpgradeAlert UIApplication+Ext.swift
[5/14] Compiling UpgradeAlert AppInfo.swift
[6/14] Compiling UpgradeAlert LookupResult.swift
[7/14] Emitting module UpgradeAlert
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:55:22: warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
53 |     *                interaction.
54 |     */
55 |    public static let defaultComplete: Complete = { (outcome: UAOutcome) in
   |                      |- warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultComplete' 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
56 |       Swift.print("default complete - outcome: \(String(describing: outcome))")
57 |    }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:69:22: warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
67 |     * - Note: By default, it uses the default configuration defined in UAConfig.
68 |     */
69 |    public static var config: UAConfig = .defaultConfig
   |                      |- warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'config' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: annotate 'config' 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
70 | }
71 |
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/UAConfig.swift:63:22: warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |  * - Description: This struct configures the behavior and presentation of upgrade alerts within the application, allowing customization of alert titles, messages, and button labels based on the upgrade requirements.
 6 |  */
 7 | public struct UAConfig {
   |               `- note: consider making struct 'UAConfig' conform to the 'Sendable' protocol
 8 |    /**
 9 |     * Determines whether the upgrade is mandatory or optional.
   :
61 |     *                configuration is not necessary.
62 |     */
63 |    public static let defaultConfig: UAConfig = {
   |                      |- warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultConfig' 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
64 |       .init(
65 |          isRequired: false, // By default, upgrades are not mandatory.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:11:81: error: cannot find 'kCFBundleNameKey' in scope
 9 |     * Example: `let appName = Bundle.name`
10 |     */
11 |    internal static let name: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
   |                                                                                 `- error: cannot find 'kCFBundleNameKey' in scope
12 |    /**
13 |     * The version of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:23:82: error: cannot find 'kCFBundleVersionKey' in scope
21 |     * Example: `let buildNumber = Bundle.build`
22 |     */
23 |    internal static let build: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as? String
   |                                                                                  `- error: cannot find 'kCFBundleVersionKey' in scope
24 |    /**
25 |     * The identifier of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:29:87: error: cannot find 'kCFBundleIdentifierKey' in scope
27 |     * Example: `let bundleIdentifier = Bundle.identifier`
28 |     */
29 |    internal static let identifier: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleIdentifierKey as String) as? String
   |                                                                                       `- error: cannot find 'kCFBundleIdentifierKey' in scope
30 |    /**
31 |     * Tests if an app is in beta
[8/14] Compiling UpgradeAlert UpgradeAlert+Variables.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:55:22: warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
53 |     *                interaction.
54 |     */
55 |    public static let defaultComplete: Complete = { (outcome: UAOutcome) in
   |                      |- warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultComplete' 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
56 |       Swift.print("default complete - outcome: \(String(describing: outcome))")
57 |    }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:69:22: warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
67 |     * - Note: By default, it uses the default configuration defined in UAConfig.
68 |     */
69 |    public static var config: UAConfig = .defaultConfig
   |                      |- warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'config' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: annotate 'config' 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
70 | }
71 |
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/UAConfig.swift:63:22: warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |  * - Description: This struct configures the behavior and presentation of upgrade alerts within the application, allowing customization of alert titles, messages, and button labels based on the upgrade requirements.
 6 |  */
 7 | public struct UAConfig {
   |               `- note: consider making struct 'UAConfig' conform to the 'Sendable' protocol
 8 |    /**
 9 |     * Determines whether the upgrade is mandatory or optional.
   :
61 |     *                configuration is not necessary.
62 |     */
63 |    public static let defaultConfig: UAConfig = {
   |                      |- warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultConfig' 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
64 |       .init(
65 |          isRequired: false, // By default, upgrades are not mandatory.
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:48:16: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                error == nil // Check if there is no error
 47 |             else {
 48 |                complete?(.error(error: error ?? .bundleErr(desc: "Err, bundle.version"))); // If there is an error, complete with error
    |                |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 49 |                return // Return from the function
 50 |             }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:48:16: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 46 |                error == nil // Check if there is no error
 47 |             else {
 48 |                complete?(.error(error: error ?? .bundleErr(desc: "Err, bundle.version"))); // If there is an error, complete with error
    |                |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 49 |                return // Return from the function
 50 |             }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:65:30: warning: capture of 'appInfo' with non-sendable type 'AppInfo' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 63 | 				// If an update is needed, show an alert on the main thread
 64 | 				DispatchQueue.main.async {
 65 | 					Self.showAlert(appInfo: appInfo, complete: complete)
    |                              `- warning: capture of 'appInfo' with non-sendable type 'AppInfo' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 | 				}
 67 |          }
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/AppInfo.swift:17:15: note: consider making struct 'AppInfo' conform to the 'Sendable' protocol
15 |  * - Fixme: ⚠️️ Add more detailed documentation for this struct and its properties.
16 |  */
17 | public struct AppInfo: Decodable {
   |               `- note: consider making struct 'AppInfo' conform to the 'Sendable' protocol
18 |    /**
19 |     * The current version of the application.
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:65:49: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 63 | 				// If an update is needed, show an alert on the main thread
 64 | 				DispatchQueue.main.async {
 65 | 					Self.showAlert(appInfo: appInfo, complete: complete)
    |                                                 |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 66 | 				}
 67 |          }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:91:29: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 89 |       guard let url: URL = requestURL else { completion?(nil, UAError.invalideURL); return }
 90 |       // Create a data task to fetch app information
 91 |       let task = URLSession.shared.dataTask(with: url) { data, _, error in
    |                             `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 92 |          do {
 93 |             guard let data = data, // Check if data is available
[9/14] Compiling UpgradeAlert UpgradeAlert.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:55:22: warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
53 |     *                interaction.
54 |     */
55 |    public static let defaultComplete: Complete = { (outcome: UAOutcome) in
   |                      |- warning: static property 'defaultComplete' is not concurrency-safe because non-'Sendable' type 'UpgradeAlert.Complete' (aka '(UAOutcome) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultComplete' 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
56 |       Swift.print("default complete - outcome: \(String(describing: outcome))")
57 |    }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert+Variables.swift:69:22: warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
67 |     * - Note: By default, it uses the default configuration defined in UAConfig.
68 |     */
69 |    public static var config: UAConfig = .defaultConfig
   |                      |- warning: static property 'config' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'config' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: annotate 'config' 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
70 | }
71 |
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/UAConfig.swift:63:22: warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |  * - Description: This struct configures the behavior and presentation of upgrade alerts within the application, allowing customization of alert titles, messages, and button labels based on the upgrade requirements.
 6 |  */
 7 | public struct UAConfig {
   |               `- note: consider making struct 'UAConfig' conform to the 'Sendable' protocol
 8 |    /**
 9 |     * Determines whether the upgrade is mandatory or optional.
   :
61 |     *                configuration is not necessary.
62 |     */
63 |    public static let defaultConfig: UAConfig = {
   |                      |- warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultConfig' 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
64 |       .init(
65 |          isRequired: false, // By default, upgrades are not mandatory.
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:48:16: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                error == nil // Check if there is no error
 47 |             else {
 48 |                complete?(.error(error: error ?? .bundleErr(desc: "Err, bundle.version"))); // If there is an error, complete with error
    |                |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 49 |                return // Return from the function
 50 |             }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:48:16: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 46 |                error == nil // Check if there is no error
 47 |             else {
 48 |                complete?(.error(error: error ?? .bundleErr(desc: "Err, bundle.version"))); // If there is an error, complete with error
    |                |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 49 |                return // Return from the function
 50 |             }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:65:30: warning: capture of 'appInfo' with non-sendable type 'AppInfo' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 63 | 				// If an update is needed, show an alert on the main thread
 64 | 				DispatchQueue.main.async {
 65 | 					Self.showAlert(appInfo: appInfo, complete: complete)
    |                              `- warning: capture of 'appInfo' with non-sendable type 'AppInfo' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 | 				}
 67 |          }
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/AppInfo.swift:17:15: note: consider making struct 'AppInfo' conform to the 'Sendable' protocol
15 |  * - Fixme: ⚠️️ Add more detailed documentation for this struct and its properties.
16 |  */
17 | public struct AppInfo: Decodable {
   |               `- note: consider making struct 'AppInfo' conform to the 'Sendable' protocol
18 |    /**
19 |     * The current version of the application.
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:65:49: warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 63 | 				// If an update is needed, show an alert on the main thread
 64 | 				DispatchQueue.main.async {
 65 | 					Self.showAlert(appInfo: appInfo, complete: complete)
    |                                                 |- warning: capture of 'complete' with non-sendable type 'UpgradeAlert.Complete?' (aka 'Optional<(UAOutcome) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 66 | 				}
 67 |          }
/host/spi-builder-workspace/Sources/UpgradeAlert/UpgradeAlert.swift:91:29: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 89 |       guard let url: URL = requestURL else { completion?(nil, UAError.invalideURL); return }
 90 |       // Create a data task to fetch app information
 91 |       let task = URLSession.shared.dataTask(with: url) { data, _, error in
    |                             `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
 92 |          do {
 93 |             guard let data = data, // Check if data is available
[10/14] Compiling UpgradeAlert Bundle+Ext.swift
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:11:81: error: cannot find 'kCFBundleNameKey' in scope
 9 |     * Example: `let appName = Bundle.name`
10 |     */
11 |    internal static let name: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
   |                                                                                 `- error: cannot find 'kCFBundleNameKey' in scope
12 |    /**
13 |     * The version of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:23:82: error: cannot find 'kCFBundleVersionKey' in scope
21 |     * Example: `let buildNumber = Bundle.build`
22 |     */
23 |    internal static let build: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as? String
   |                                                                                  `- error: cannot find 'kCFBundleVersionKey' in scope
24 |    /**
25 |     * The identifier of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:29:87: error: cannot find 'kCFBundleIdentifierKey' in scope
27 |     * Example: `let bundleIdentifier = Bundle.identifier`
28 |     */
29 |    internal static let identifier: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleIdentifierKey as String) as? String
   |                                                                                       `- error: cannot find 'kCFBundleIdentifierKey' in scope
30 |    /**
31 |     * Tests if an app is in beta
[11/14] Compiling UpgradeAlert NSAlert+Ext.swift
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:11:81: error: cannot find 'kCFBundleNameKey' in scope
 9 |     * Example: `let appName = Bundle.name`
10 |     */
11 |    internal static let name: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
   |                                                                                 `- error: cannot find 'kCFBundleNameKey' in scope
12 |    /**
13 |     * The version of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:23:82: error: cannot find 'kCFBundleVersionKey' in scope
21 |     * Example: `let buildNumber = Bundle.build`
22 |     */
23 |    internal static let build: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as? String
   |                                                                                  `- error: cannot find 'kCFBundleVersionKey' in scope
24 |    /**
25 |     * The identifier of the main bundle.
/host/spi-builder-workspace/Sources/UpgradeAlert/ext/Bundle+Ext.swift:29:87: error: cannot find 'kCFBundleIdentifierKey' in scope
27 |     * Example: `let bundleIdentifier = Bundle.identifier`
28 |     */
29 |    internal static let identifier: String? = Bundle.main.object(forInfoDictionaryKey: kCFBundleIdentifierKey as String) as? String
   |                                                                                       `- error: cannot find 'kCFBundleIdentifierKey' in scope
30 |    /**
31 |     * Tests if an app is in beta
[12/15] Compiling UpgradeAlert UAConfig.swift
/host/spi-builder-workspace/Sources/UpgradeAlert/helper/UAConfig.swift:63:22: warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |  * - Description: This struct configures the behavior and presentation of upgrade alerts within the application, allowing customization of alert titles, messages, and button labels based on the upgrade requirements.
 6 |  */
 7 | public struct UAConfig {
   |               `- note: consider making struct 'UAConfig' conform to the 'Sendable' protocol
 8 |    /**
 9 |     * Determines whether the upgrade is mandatory or optional.
   :
61 |     *                configuration is not necessary.
62 |     */
63 |    public static let defaultConfig: UAConfig = {
   |                      |- warning: static property 'defaultConfig' is not concurrency-safe because non-'Sendable' type 'UAConfig' may have shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: annotate 'defaultConfig' 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
64 |       .init(
65 |          isRequired: false, // By default, upgrades are not mandatory.
[13/15] Compiling UpgradeAlert UAOutcome.swift
[14/15] Compiling UpgradeAlert UAError.swift
[15/15] Compiling UpgradeAlert ComparisonResult.swift
BUILD FAILURE 6.0 linux