From 6e4c2641d25d582806a20af3fa503214b6bf3c2b Mon Sep 17 00:00:00 2001 From: Kieran Osgood Date: Wed, 13 May 2026 20:04:15 +0100 Subject: [PATCH] Fix Swift 6 sample concurrency issues --- .../Sources/Lib/KeychainHelper.swift | 3 ++- .../EnvironmentVariables.swift | 9 +-------- .../ShopifyAcceleratedCheckoutsApp/Network.swift | 3 ++- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/platforms/swift/Samples/MobileBuyIntegration/MobileBuyIntegration/Sources/Lib/KeychainHelper.swift b/platforms/swift/Samples/MobileBuyIntegration/MobileBuyIntegration/Sources/Lib/KeychainHelper.swift index 6b05e814..af83c9ca 100644 --- a/platforms/swift/Samples/MobileBuyIntegration/MobileBuyIntegration/Sources/Lib/KeychainHelper.swift +++ b/platforms/swift/Samples/MobileBuyIntegration/MobileBuyIntegration/Sources/Lib/KeychainHelper.swift @@ -51,7 +51,8 @@ struct OAuthTokenResult: Codable { } } -final class KeychainHelper: Sendable { +@MainActor +final class KeychainHelper { static let shared = KeychainHelper() private let logger = OSLogger(prefix: "Keychain", logLevel: ShopifyCheckoutKit.configuration.logLevel) diff --git a/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/EnvironmentVariables.swift b/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/EnvironmentVariables.swift index 5f54a64d..b5f87b57 100644 --- a/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/EnvironmentVariables.swift +++ b/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/EnvironmentVariables.swift @@ -31,19 +31,12 @@ public enum EnvironmentVariables { } private static func getKey(for key: String) -> String { - guard let value = EnvironmentVariables.infoDictionary[key] as? String else { + guard let value = Bundle.main.infoDictionary?[key] as? String else { fatalError("Environment variable \(key) must be set in the Storefront.xcconfig file") } return value } - private static let infoDictionary: [String: Any] = { - guard let dict = Bundle.main.infoDictionary else { - fatalError("Plist file not found") - } - return dict - }() - public static let storefrontAccessToken: String = getKey(for: Keys.storefrontAccessToken) public static let storefrontDomain: String = getKey(for: Keys.storefrontDomain) diff --git a/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/Network.swift b/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/Network.swift index ad41f4cb..d2990a6d 100644 --- a/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/Network.swift +++ b/platforms/swift/Samples/ShopifyAcceleratedCheckoutsApp/ShopifyAcceleratedCheckoutsApp/Network.swift @@ -41,7 +41,8 @@ typealias ProductVariants = Storefront.GetProductsQuery.Data.Products.Node.Varia typealias ProductVariant = Storefront.GetProductsQuery.Data.Products.Node.Variants.Node typealias ProductPrice = Storefront.GetProductsQuery.Data.Products.Node.Variants.Node.Price -class Network { +@MainActor +final class Network { static let shared = Network() /// Get the device's language code mapped to Shopify's LanguageCode enum