Build Information
Successful build of StoreHelper, reference main (1c55f4), with Swift 6.1 for macOS (SPM) on 5 Nov 2025 00:39:53 UTC.
Swift 6 data race errors: 12
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64Build Log
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[125/146] Compiling StoreHelper StoreLog.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
:
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreLog.swift:58:23: warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 | }
57 |
58 | public static var transactionLog: Set<TransactionLog> = []
| |- warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'transactionLog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'transactionLog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// Logs a StoreNotification as a transaction. Multiple transactions for the same event, product id and transaction id will only be logged once.
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreNotification.swift:42:10: warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
23 | }
24 |
25 | public enum UnderlyingError: Equatable {
| `- note: consider making enum 'UnderlyingError' conform to the 'Sendable' protocol
26 | case purchase(Product.PurchaseError)
27 | case storeKit(StoreKitError)
:
40 | /// StoreHelper exceptions
41 | public enum StoreException: Error, Equatable {
42 | case purchaseException(UnderlyingError?)
| `- warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
43 | case purchaseInProgressException
44 | case transactionVerificationFailed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| `- warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:48:15: note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:998:30: warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
996 | @MainActor private func handleTransactions() -> Task<Void, Error> {
997 |
998 | return Task.detached { [self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 |
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- note: closure captures 'self' which is accessible to main actor-isolated code
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1022:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1020 | // See transaction.revocationReason for more details if required
1021 | StoreLog.transaction(.transactionRevoked, productId: transaction.productID, transactionId: String(transaction.id))
1022 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1023 | if let handler = transactionNotification { handler(.transactionRevoked, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1024 | return
1025 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1030:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1028 | // The user's subscription has expired
1029 | StoreLog.transaction(.transactionExpired, productId: transaction.productID, transactionId: String(transaction.id))
1030 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1031 | if let handler = transactionNotification { handler(.transactionExpired, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1032 | return
1033 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1038:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1036 | // Transaction superceeded by an active, higher-value subscription
1037 | StoreLog.transaction(.transactionUpgraded, productId: transaction.productID, transactionId: String(transaction.id))
1038 | await self.updatePurchasedProducts(for: transaction.productID, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1039 | if let handler = transactionNotification { handler(.transactionUpgraded, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1040 | return
1041 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1045:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1043 | // Update the list of products the user has access to
1044 | StoreLog.transaction(.transactionSuccess, productId: transaction.productID, transactionId: String(transaction.id))
1045 | await self.updatePurchasedProducts(transaction: transaction, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(transaction:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1046 | if let handler = transactionNotification { handler(.transactionSuccess, transaction.productID, String(transaction.id)) }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'subscriptionInfo(for:)' risks causing data races between main actor-isolated and task-isolated uses
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:378:55: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[126/146] Compiling StoreHelper StoreNotification.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
:
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreLog.swift:58:23: warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 | }
57 |
58 | public static var transactionLog: Set<TransactionLog> = []
| |- warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'transactionLog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'transactionLog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// Logs a StoreNotification as a transaction. Multiple transactions for the same event, product id and transaction id will only be logged once.
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreNotification.swift:42:10: warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
23 | }
24 |
25 | public enum UnderlyingError: Equatable {
| `- note: consider making enum 'UnderlyingError' conform to the 'Sendable' protocol
26 | case purchase(Product.PurchaseError)
27 | case storeKit(StoreKitError)
:
40 | /// StoreHelper exceptions
41 | public enum StoreException: Error, Equatable {
42 | case purchaseException(UnderlyingError?)
| `- warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
43 | case purchaseInProgressException
44 | case transactionVerificationFailed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| `- warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:48:15: note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:998:30: warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
996 | @MainActor private func handleTransactions() -> Task<Void, Error> {
997 |
998 | return Task.detached { [self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 |
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- note: closure captures 'self' which is accessible to main actor-isolated code
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1022:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1020 | // See transaction.revocationReason for more details if required
1021 | StoreLog.transaction(.transactionRevoked, productId: transaction.productID, transactionId: String(transaction.id))
1022 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1023 | if let handler = transactionNotification { handler(.transactionRevoked, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1024 | return
1025 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1030:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1028 | // The user's subscription has expired
1029 | StoreLog.transaction(.transactionExpired, productId: transaction.productID, transactionId: String(transaction.id))
1030 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1031 | if let handler = transactionNotification { handler(.transactionExpired, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1032 | return
1033 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1038:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1036 | // Transaction superceeded by an active, higher-value subscription
1037 | StoreLog.transaction(.transactionUpgraded, productId: transaction.productID, transactionId: String(transaction.id))
1038 | await self.updatePurchasedProducts(for: transaction.productID, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1039 | if let handler = transactionNotification { handler(.transactionUpgraded, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1040 | return
1041 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1045:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1043 | // Update the list of products the user has access to
1044 | StoreLog.transaction(.transactionSuccess, productId: transaction.productID, transactionId: String(transaction.id))
1045 | await self.updatePurchasedProducts(transaction: transaction, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(transaction:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1046 | if let handler = transactionNotification { handler(.transactionSuccess, transaction.productID, String(transaction.id)) }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'subscriptionInfo(for:)' risks causing data races between main actor-isolated and task-isolated uses
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:378:55: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[127/146] Compiling StoreHelper SubInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
:
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreLog.swift:58:23: warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 | }
57 |
58 | public static var transactionLog: Set<TransactionLog> = []
| |- warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'transactionLog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'transactionLog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// Logs a StoreNotification as a transaction. Multiple transactions for the same event, product id and transaction id will only be logged once.
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreNotification.swift:42:10: warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
23 | }
24 |
25 | public enum UnderlyingError: Equatable {
| `- note: consider making enum 'UnderlyingError' conform to the 'Sendable' protocol
26 | case purchase(Product.PurchaseError)
27 | case storeKit(StoreKitError)
:
40 | /// StoreHelper exceptions
41 | public enum StoreException: Error, Equatable {
42 | case purchaseException(UnderlyingError?)
| `- warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
43 | case purchaseInProgressException
44 | case transactionVerificationFailed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| `- warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:48:15: note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:998:30: warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
996 | @MainActor private func handleTransactions() -> Task<Void, Error> {
997 |
998 | return Task.detached { [self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 |
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- note: closure captures 'self' which is accessible to main actor-isolated code
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1022:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1020 | // See transaction.revocationReason for more details if required
1021 | StoreLog.transaction(.transactionRevoked, productId: transaction.productID, transactionId: String(transaction.id))
1022 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1023 | if let handler = transactionNotification { handler(.transactionRevoked, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1024 | return
1025 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1030:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1028 | // The user's subscription has expired
1029 | StoreLog.transaction(.transactionExpired, productId: transaction.productID, transactionId: String(transaction.id))
1030 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1031 | if let handler = transactionNotification { handler(.transactionExpired, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1032 | return
1033 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1038:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1036 | // Transaction superceeded by an active, higher-value subscription
1037 | StoreLog.transaction(.transactionUpgraded, productId: transaction.productID, transactionId: String(transaction.id))
1038 | await self.updatePurchasedProducts(for: transaction.productID, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1039 | if let handler = transactionNotification { handler(.transactionUpgraded, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1040 | return
1041 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1045:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1043 | // Update the list of products the user has access to
1044 | StoreLog.transaction(.transactionSuccess, productId: transaction.productID, transactionId: String(transaction.id))
1045 | await self.updatePurchasedProducts(transaction: transaction, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(transaction:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1046 | if let handler = transactionNotification { handler(.transactionSuccess, transaction.productID, String(transaction.id)) }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'subscriptionInfo(for:)' risks causing data races between main actor-isolated and task-isolated uses
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:378:55: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[128/146] Compiling StoreHelper SubscriptionHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
:
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreLog.swift:58:23: warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 | }
57 |
58 | public static var transactionLog: Set<TransactionLog> = []
| |- warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'transactionLog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'transactionLog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// Logs a StoreNotification as a transaction. Multiple transactions for the same event, product id and transaction id will only be logged once.
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreNotification.swift:42:10: warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
23 | }
24 |
25 | public enum UnderlyingError: Equatable {
| `- note: consider making enum 'UnderlyingError' conform to the 'Sendable' protocol
26 | case purchase(Product.PurchaseError)
27 | case storeKit(StoreKitError)
:
40 | /// StoreHelper exceptions
41 | public enum StoreException: Error, Equatable {
42 | case purchaseException(UnderlyingError?)
| `- warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
43 | case purchaseInProgressException
44 | case transactionVerificationFailed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| `- warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:48:15: note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:998:30: warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
996 | @MainActor private func handleTransactions() -> Task<Void, Error> {
997 |
998 | return Task.detached { [self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 |
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- note: closure captures 'self' which is accessible to main actor-isolated code
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1022:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1020 | // See transaction.revocationReason for more details if required
1021 | StoreLog.transaction(.transactionRevoked, productId: transaction.productID, transactionId: String(transaction.id))
1022 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1023 | if let handler = transactionNotification { handler(.transactionRevoked, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1024 | return
1025 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1030:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1028 | // The user's subscription has expired
1029 | StoreLog.transaction(.transactionExpired, productId: transaction.productID, transactionId: String(transaction.id))
1030 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1031 | if let handler = transactionNotification { handler(.transactionExpired, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1032 | return
1033 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1038:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1036 | // Transaction superceeded by an active, higher-value subscription
1037 | StoreLog.transaction(.transactionUpgraded, productId: transaction.productID, transactionId: String(transaction.id))
1038 | await self.updatePurchasedProducts(for: transaction.productID, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1039 | if let handler = transactionNotification { handler(.transactionUpgraded, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1040 | return
1041 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1045:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1043 | // Update the list of products the user has access to
1044 | StoreLog.transaction(.transactionSuccess, productId: transaction.productID, transactionId: String(transaction.id))
1045 | await self.updatePurchasedProducts(transaction: transaction, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(transaction:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1046 | if let handler = transactionNotification { handler(.transactionSuccess, transaction.productID, String(transaction.id)) }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'subscriptionInfo(for:)' risks causing data races between main actor-isolated and task-isolated uses
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:378:55: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[129/146] Compiling StoreHelper SubscriptionOfferInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
:
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreLog.swift:58:23: warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 | }
57 |
58 | public static var transactionLog: Set<TransactionLog> = []
| |- warning: static property 'transactionLog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'transactionLog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'transactionLog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// Logs a StoreNotification as a transaction. Multiple transactions for the same event, product id and transaction id will only be logged once.
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreNotification.swift:42:10: warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
23 | }
24 |
25 | public enum UnderlyingError: Equatable {
| `- note: consider making enum 'UnderlyingError' conform to the 'Sendable' protocol
26 | case purchase(Product.PurchaseError)
27 | case storeKit(StoreKitError)
:
40 | /// StoreHelper exceptions
41 | public enum StoreException: Error, Equatable {
42 | case purchaseException(UnderlyingError?)
| `- warning: associated value 'purchaseException' of 'Sendable'-conforming enum 'StoreException' has non-sendable type 'UnderlyingError'; this is an error in the Swift 6 language mode
43 | case purchaseInProgressException
44 | case transactionVerificationFailed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| `- warning: non-sendable result type 'SubInfo?' cannot be sent from main actor-isolated context in call to instance method 'subscriptionInfo(for:)'; this is an error in the Swift 6 language mode
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| `- warning: non-sendable result type 'UnwrappedVerificationResult<Transaction>' cannot be sent from main actor-isolated context in call to instance method 'checkVerificationResult(result:)'; this is an error in the Swift 6 language mode
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:48:15: note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
46 | /// Information on the result of unwrapping a transaction `VerificationResult`.
47 | @available(iOS 15.0, macOS 12.0, *)
48 | public struct UnwrappedVerificationResult<T> {
| `- note: consider making generic struct 'UnwrappedVerificationResult' conform to the 'Sendable' protocol
49 | /// The verified or unverified transaction.
50 | public let transaction: T
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:998:30: warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
996 | @MainActor private func handleTransactions() -> Task<Void, Error> {
997 |
998 | return Task.detached { [self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 |
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| `- note: closure captures 'self' which is accessible to main actor-isolated code
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1002:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1000 | for await verificationResult in Transaction.updates {
1001 | // See if StoreKit validated the transaction
1002 | let checkResult = await self.checkVerificationResult(result: verificationResult)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1003 | guard checkResult.verified else {
1004 | // StoreKit's attempts to validate the transaction failed
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1022:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1020 | // See transaction.revocationReason for more details if required
1021 | StoreLog.transaction(.transactionRevoked, productId: transaction.productID, transactionId: String(transaction.id))
1022 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1023 | if let handler = transactionNotification { handler(.transactionRevoked, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1024 | return
1025 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1030:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1028 | // The user's subscription has expired
1029 | StoreLog.transaction(.transactionExpired, productId: transaction.productID, transactionId: String(transaction.id))
1030 | await self.updatePurchasedProducts(for: transaction.productID, purchased: false)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1031 | if let handler = transactionNotification { handler(.transactionExpired, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1032 | return
1033 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1038:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1036 | // Transaction superceeded by an active, higher-value subscription
1037 | StoreLog.transaction(.transactionUpgraded, productId: transaction.productID, transactionId: String(transaction.id))
1038 | await self.updatePurchasedProducts(for: transaction.productID, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(for:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
1039 | if let handler = transactionNotification { handler(.transactionUpgraded, transaction.productID, String(transaction.id)) }
| `- note: access can happen concurrently
1040 | return
1041 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/StoreHelper.swift:1045:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1043 | // Update the list of products the user has access to
1044 | StoreLog.transaction(.transactionSuccess, productId: transaction.productID, transactionId: String(transaction.id))
1045 | await self.updatePurchasedProducts(transaction: transaction, purchased: true)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'updatePurchasedProducts(transaction:purchased:updateFallbackList:updateTransactionCheck:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
1046 | if let handler = transactionNotification { handler(.transactionSuccess, transaction.productID, String(transaction.id)) }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:314:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 | subscriptionInfoSet = OrderedSet<SubInfo>()
313 | for group in groups {
314 | if let hslp = await subscriptionInfo(for: group) { subscriptionInfoSet.append(hslp) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'subscriptionInfo(for:)' risks causing data races between main actor-isolated and task-isolated uses
315 | }
316 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:378:55: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
376 |
377 | // Sanity check. Make sure the user's not subscribed to the provided subscription
378 | guard let subscribed = try? await storeHelper.isSubscribed(product: product), !subscribed else { return false }
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
379 |
380 | // Get all the product ids in the subscription group
381 | guard let products = subscriptions(in: group) else { return false }
| `- note: access can happen concurrently
382 |
383 | // Get the index of the provided product and make sure there service levels of lower value (higher in the collection)
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:389:59: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
387 | for i in (indexOfProvidedProduct+1)...(products.count-1) {
388 | if let lowerValueProduct = storeHelper.product(from: products[i]),
389 | let isSubscribed = try? await storeHelper.isSubscribed(product: lowerValueProduct),
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'isSubscribed(product:checkSuperceded:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
390 | isSubscribed { return true }
391 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubscriptionHelper.swift:427:47: warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
425 |
426 | for await transaction in StoreKit.Transaction.all {
427 | let unwrapped = await storeHelper.checkVerificationResult(result: transaction)
| |- warning: sending 'storeHelper' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'storeHelper' to main actor-isolated instance method 'checkVerificationResult(result:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
428 | if let subscriptionTransactionInfo = await SubscriptionTransactionInfo(unwrappedTransaction: unwrapped, storeHelper: storeHelper) {
429 | transactions.append(subscriptionTransactionInfo)
[130/146] Compiling StoreHelper PriceViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[131/146] Compiling StoreHelper PurchaseInfoViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[132/146] Compiling StoreHelper SubscriptionInfoViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[133/146] Compiling StoreHelper BadgeView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[134/146] Compiling StoreHelper ConsumableBadgeView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[135/146] Compiling StoreHelper ConsumableView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
15 | @Binding public var purchaseState: PurchaseState
16 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:18:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
15 | @Binding public var purchaseState: PurchaseState
16 |
17 | public init(storeHelper: StoreHelper, purchaseState: Binding<PurchaseState>) {
18 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
19 | self._purchaseState = purchaseState
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:78:14: warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- note: mutation of this property is only permitted within the actor
75 | public var subscriptionInfo: SubInfo
76 |
77 | public init(storeHelper: StoreHelper, subscriptionInfo: SubInfo) {
78 | self.storeHelper = storeHelper
| `- warning: main actor-isolated property 'storeHelper' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
79 | self.subscriptionInfo = subscriptionInfo
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:14:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct PriceViewModel {
14 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
15 | @Binding public var purchaseState: PurchaseState
16 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:60:53: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
58 | if !ppSubInfo.promotionalOffers.isEmpty {
59 | // Promotional offers take precedence over introductory offers. There are promo offers available, but is this user eligible?
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PriceViewModel.swift:62:60: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
60 | if await storeHelper.subscriptionHelper.isLapsedSubscriber(to: product) {
61 | ppSubInfo.promotionalOffersEligible = true
62 | } else if await storeHelper.subscriptionHelper.hasLowerValueCurrentSubscription(than: product) {
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
63 | ppSubInfo.promotionalOffersEligible = true
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
59 | public var productId: ProductId
60 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| |- warning: sending '$input_value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated '$input_value' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
75 | public var subscriptionInfo: SubInfo
76 |
[136/146] Compiling StoreHelper RestorePurchasesView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
56 | }
57 | }
[137/146] Compiling StoreHelper StoreErrorView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
56 | }
57 | }
[138/146] Compiling StoreHelper SubscriptionInfoSheet.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
56 | }
57 | }
[139/146] Compiling StoreHelper SubscriptionInfoView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
56 | }
57 | }
[140/146] Compiling StoreHelper SubscriptionListViewRow.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/SubscriptionInfoViewModel.swift:74:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
72 | @available(iOS 15.0, macOS 12.0, *)
73 | public struct SubscriptionInfoViewModel {
74 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
75 | public var subscriptionInfo: SubInfo
76 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| `- warning: non-sendable result type 'OrderedSet<SubInfo>?' cannot be sent from nonisolated context in call to instance method 'groupSubscriptionInfo()'; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Core/SubInfo.swift:13:15: note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
11 | /// This struct has been renamed as `SubInfo` from `SubscriptionInfo` to avoid a name collision with a type alias introduced is iOS 18.4.
12 | @available(iOS 15.0, macOS 12.0, *)
13 | public struct SubInfo: Hashable {
| `- note: consider making struct 'SubInfo' conform to the 'Sendable' protocol
14 | public init(product: Product? = nil,
15 | subscriptionGroup: String? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:53:73: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
51 | }
52 | }
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Views/Shared/SubscriptionListViewRow.swift:55:81: warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
53 | .task { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
54 | .onChange(of: storeHelper.purchasedProducts) { _ in
55 | Task.init { subscriptionInfo = await storeHelper.subscriptionHelper.groupSubscriptionInfo()}
| |- warning: sending value of non-Sendable type 'SubscriptionHelper' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'SubscriptionHelper' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
56 | }
57 | }
[141/146] Compiling StoreHelper ProductListViewRow.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
[142/146] Compiling StoreHelper ProductView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
[143/146] Compiling StoreHelper PurchaseButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
[144/146] Compiling StoreHelper PurchaseInfoSheet.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
[145/146] Compiling StoreHelper PurchaseInfoView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
[146/146] Compiling StoreHelper RefreshProductsView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/ViewModels/PurchaseInfoViewModel.swift:58:6: warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
56 | public struct PurchaseInfoViewModel {
57 |
58 | @ObservedObject public var storeHelper: StoreHelper
| `- warning: call to main actor-isolated initializer 'init(wrappedValue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | public var productId: ProductId
60 |
SwiftUICore.ObservedObject.init:2:35: note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
1 | generic struct ObservedObject {
2 | @MainActor @preconcurrency public init(wrappedValue: ObjectType)}
| `- note: calls to initializer 'init(wrappedValue:)' from outside of its actor context are implicitly asynchronous
3 |
Fetching https://github.com/apple/swift-docc-plugin.git
Fetching https://github.com/apple/swift-collections from cache
[1/2160] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin.git from cache (1.45s)
Fetched https://github.com/apple/swift-collections from cache (1.48s)
Computing version for https://github.com/apple/swift-docc-plugin.git
Computed https://github.com/apple/swift-docc-plugin.git at 1.4.5 (4.60s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.86s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.51s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.3.0 (0.61s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin.git
Working copy of https://github.com/apple/swift-docc-plugin.git resolved at 1.4.5
Creating working copy for https://github.com/apple/swift-collections
Working copy of https://github.com/apple/swift-collections resolved at 1.3.0
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/20] Compiling InternalCollectionsUtilities UnsafeMutableRawBufferPointer+Extras.swift
[5/21] Compiling InternalCollectionsUtilities UnsafeRawBufferPointer+Extras.swift
[6/21] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[7/21] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[8/21] Compiling InternalCollectionsUtilities _SortedCollection.swift
[9/21] Compiling InternalCollectionsUtilities Descriptions.swift
[10/21] Compiling InternalCollectionsUtilities LifetimeOverride.swift
[11/21] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[12/21] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[13/21] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[14/21] Compiling InternalCollectionsUtilities Debugging.swift
[15/21] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[16/21] Compiling InternalCollectionsUtilities UInt+reversed.swift
[17/21] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[18/21] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[19/21] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[20/21] Compiling InternalCollectionsUtilities Integer rank.swift
[21/21] Emitting module InternalCollectionsUtilities
[22/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formIntersection.swift
[23/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formSymmetricDifference.swift
[24/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formUnion.swift
[25/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra intersection.swift
[26/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isDisjoint.swift
[27/77] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isEqualSet.swift
[28/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSubset.swift
[29/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSuperset.swift
[30/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSubset.swift
[31/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSuperset.swift
[32/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtract.swift
[33/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtracting.swift
[34/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra symmetricDifference.swift
[35/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra union.swift
[36/83] Compiling OrderedCollections OrderedSet+Partial SetAlgebra+Basics.swift
[37/83] Compiling OrderedCollections OrderedSet+RandomAccessCollection.swift
[38/83] Compiling OrderedCollections OrderedSet+ReserveCapacity.swift
[39/83] Compiling OrderedCollections OrderedSet+Sendable.swift
[40/83] Compiling OrderedCollections _Hashtable+Header.swift
[41/83] Compiling OrderedCollections OrderedDictionary+Codable.swift
[42/83] Compiling OrderedCollections OrderedDictionary+CustomReflectable.swift
[43/83] Compiling OrderedCollections OrderedDictionary+Deprecations.swift
[44/83] Compiling OrderedCollections OrderedDictionary+Descriptions.swift
[45/83] Compiling OrderedCollections OrderedDictionary+Elements.SubSequence.swift
[46/83] Compiling OrderedCollections OrderedSet+Hashable.swift
[47/83] Compiling OrderedCollections OrderedSet+Initializers.swift
[48/83] Compiling OrderedCollections OrderedSet+Insertions.swift
[49/83] Compiling OrderedCollections OrderedSet+Invariants.swift
[50/83] Compiling OrderedCollections OrderedSet+Partial MutableCollection.swift
[51/83] Compiling OrderedCollections OrderedSet+Partial RangeReplaceableCollection.swift
[52/83] Compiling OrderedCollections OrderedDictionary+Partial MutableCollection.swift
[53/83] Compiling OrderedCollections OrderedDictionary+Partial RangeReplaceableCollection.swift
[54/83] Compiling OrderedCollections OrderedDictionary+Sendable.swift
[55/83] Compiling OrderedCollections OrderedDictionary+Sequence.swift
[56/83] Compiling OrderedCollections OrderedDictionary+Values.swift
[57/83] Compiling OrderedCollections OrderedDictionary.swift
[58/83] Compiling OrderedCollections OrderedDictionary+Elements.swift
[59/83] Compiling OrderedCollections OrderedDictionary+Equatable.swift
[60/83] Compiling OrderedCollections OrderedDictionary+ExpressibleByDictionaryLiteral.swift
[61/83] Compiling OrderedCollections OrderedDictionary+Hashable.swift
[62/83] Compiling OrderedCollections OrderedDictionary+Initializers.swift
[63/83] Compiling OrderedCollections OrderedDictionary+Invariants.swift
[64/83] Compiling OrderedCollections OrderedSet+Codable.swift
[65/83] Compiling OrderedCollections OrderedSet+CustomReflectable.swift
[66/83] Compiling OrderedCollections OrderedSet+Descriptions.swift
[67/83] Compiling OrderedCollections OrderedSet+Diffing.swift
[68/83] Compiling OrderedCollections OrderedSet+Equatable.swift
[69/83] Compiling OrderedCollections OrderedSet+ExpressibleByArrayLiteral.swift
[70/83] Compiling OrderedCollections _HashTable+Bucket.swift
[71/83] Compiling OrderedCollections _HashTable+BucketIterator.swift
[72/83] Compiling OrderedCollections _HashTable+Constants.swift
[73/83] Compiling OrderedCollections _HashTable+CustomStringConvertible.swift
[74/83] Compiling OrderedCollections _HashTable+Testing.swift
[75/83] Compiling OrderedCollections _HashTable+UnsafeHandle.swift
[76/83] Compiling OrderedCollections _HashTable.swift
[77/83] Compiling OrderedCollections OrderedSet+SubSequence.swift
[78/83] Compiling OrderedCollections OrderedSet+Testing.swift
[79/83] Compiling OrderedCollections OrderedSet+UnorderedView.swift
[80/83] Compiling OrderedCollections OrderedSet+UnstableInternals.swift
[81/83] Compiling OrderedCollections OrderedSet.swift
[82/83] Compiling OrderedCollections _UnsafeBitset.swift
[83/83] Emitting module OrderedCollections
[84/136] Emitting module StoreHelper
[85/141] Compiling StoreHelper SubscriptionView.swift
[86/141] Compiling StoreHelper TermsOfServiceView.swift
[87/141] Compiling StoreHelper VersionInfo.swift
[88/141] Compiling StoreHelper Products-ios.swift
[89/141] Compiling StoreHelper PurchaseManagement-ios.swift
[90/141] Compiling StoreHelper Image-macos.swift
[91/141] Compiling StoreHelper Configuration.swift
[92/141] Compiling StoreHelper PropertyFile.swift
[93/141] Compiling StoreHelper StoreConfiguration.swift
[94/141] Compiling StoreHelper Utils.swift
[95/141] Compiling StoreHelper OptionsViewModel.swift
[96/141] Compiling StoreHelper SubscriptionTransactionInfo.swift
[97/141] Compiling StoreHelper Buttons.swift
[98/141] Compiling StoreHelper Fonts.swift
[99/141] Compiling StoreHelper Images.swift
[100/141] Compiling StoreHelper TapGesture.swift
[101/141] Compiling StoreHelper Image-ios.swift
[102/141] Compiling StoreHelper RestorePurchasesView.swift
[103/141] Compiling StoreHelper StoreErrorView.swift
[104/141] Compiling StoreHelper SubscriptionInfoSheet.swift
[105/141] Compiling StoreHelper SubscriptionInfoView.swift
[106/141] Compiling StoreHelper SubscriptionListViewRow.swift
[107/141] Compiling StoreHelper RedeemOfferCodeView-ios.swift
[108/141] Compiling StoreHelper SheetBarView-ios.swift
[109/141] Compiling StoreHelper Products-macos.swift
[110/141] Compiling StoreHelper SheetBarView-macos.swift
[111/141] Compiling StoreHelper resource_bundle_accessor.swift
[112/141] Compiling StoreHelper StoreHelper.swift
[113/141] Compiling StoreHelper StoreLog.swift
[114/141] Compiling StoreHelper StoreNotification.swift
[115/141] Compiling StoreHelper SubInfo.swift
[116/141] Compiling StoreHelper SubscriptionHelper.swift
[117/141] Compiling StoreHelper SubscriptionOfferInfo.swift
[118/141] Compiling StoreHelper ContactUsView.swift
[119/141] Compiling StoreHelper PriceButtonText.swift
[120/141] Compiling StoreHelper PriceButtonTextSubscription.swift
[121/141] Compiling StoreHelper PriceView.swift
[122/141] Compiling StoreHelper ProductInfoView.swift
[123/141] Compiling StoreHelper ProductListView.swift
[124/141] Compiling StoreHelper ProductListViewRow.swift
[125/141] Compiling StoreHelper ProductView.swift
[126/141] Compiling StoreHelper PurchaseButton.swift
[127/141] Compiling StoreHelper PurchaseInfoSheet.swift
[128/141] Compiling StoreHelper PurchaseInfoView.swift
[129/141] Compiling StoreHelper RefreshProductsView.swift
[130/141] Compiling StoreHelper PriceViewModel.swift
[131/141] Compiling StoreHelper PurchaseInfoViewModel.swift
[132/141] Compiling StoreHelper SubscriptionInfoViewModel.swift
[133/141] Compiling StoreHelper BadgeView.swift
[134/141] Compiling StoreHelper ConsumableBadgeView.swift
[135/141] Compiling StoreHelper ConsumableView.swift
[136/141] Compiling StoreHelper AppGroupSupport.swift
[137/141] Compiling StoreHelper AppStoreHelper.swift
[138/141] Compiling StoreHelper KeychainHelper.swift
[139/141] Compiling StoreHelper PrePurchaseSubscriptionInfo.swift
[140/141] Compiling StoreHelper PurchaseInfo.swift
[141/141] Compiling StoreHelper StoreConstants.swift
Build complete! (4.76s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-collections",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-collections"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin.git"
}
],
"manifest_display_name" : "StoreHelper",
"name" : "StoreHelper",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "visionos",
"version" : "1.0"
},
{
"name" : "tvos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "StoreHelper",
"targets" : [
"StoreHelper"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "StoreHelper",
"module_type" : "SwiftTarget",
"name" : "StoreHelper",
"path" : "Sources/StoreHelper",
"product_dependencies" : [
"OrderedCollections"
],
"product_memberships" : [
"StoreHelper"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Resources/PrivacyInfo.xcprivacy",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StoreHelper/Resources/storehelper-logo.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Core/AppGroupSupport.swift",
"Core/AppStoreHelper.swift",
"Core/KeychainHelper.swift",
"Core/PrePurchaseSubscriptionInfo.swift",
"Core/PurchaseInfo.swift",
"Core/StoreConstants.swift",
"Core/StoreHelper.swift",
"Core/StoreLog.swift",
"Core/StoreNotification.swift",
"Core/SubInfo.swift",
"Core/SubscriptionHelper.swift",
"Core/SubscriptionOfferInfo.swift",
"Core/SubscriptionTransactionInfo.swift",
"Styles/Shared/Buttons.swift",
"Styles/Shared/Fonts.swift",
"Styles/Shared/Images.swift",
"Styles/Shared/TapGesture.swift",
"Styles/iOS/Image-ios.swift",
"Styles/macOS/Image-macos.swift",
"Util/Configuration.swift",
"Util/PropertyFile.swift",
"Util/StoreConfiguration.swift",
"Util/Utils.swift",
"ViewModels/OptionsViewModel.swift",
"ViewModels/PriceViewModel.swift",
"ViewModels/PurchaseInfoViewModel.swift",
"ViewModels/SubscriptionInfoViewModel.swift",
"Views/Shared/BadgeView.swift",
"Views/Shared/ConsumableBadgeView.swift",
"Views/Shared/ConsumableView.swift",
"Views/Shared/ContactUsView.swift",
"Views/Shared/PriceButtonText.swift",
"Views/Shared/PriceButtonTextSubscription.swift",
"Views/Shared/PriceView.swift",
"Views/Shared/ProductInfoView.swift",
"Views/Shared/ProductListView.swift",
"Views/Shared/ProductListViewRow.swift",
"Views/Shared/ProductView.swift",
"Views/Shared/PurchaseButton.swift",
"Views/Shared/PurchaseInfoSheet.swift",
"Views/Shared/PurchaseInfoView.swift",
"Views/Shared/RefreshProductsView.swift",
"Views/Shared/RestorePurchasesView.swift",
"Views/Shared/StoreErrorView.swift",
"Views/Shared/SubscriptionInfoSheet.swift",
"Views/Shared/SubscriptionInfoView.swift",
"Views/Shared/SubscriptionListViewRow.swift",
"Views/Shared/SubscriptionView.swift",
"Views/Shared/TermsOfServiceView.swift",
"Views/Shared/VersionInfo.swift",
"Views/iOS/Products-ios.swift",
"Views/iOS/PurchaseManagement-ios.swift",
"Views/iOS/RedeemOfferCodeView-ios.swift",
"Views/iOS/SheetBarView-ios.swift",
"Views/macOS/Products-macos.swift",
"Views/macOS/SheetBarView-macos.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.