Build Information
Successful build of SwiftyStoreKit, reference master (48d4d4
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 10:39:29 UTC.
Swift 6 data race errors: 5
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bizz84/SwiftyStoreKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bizz84/SwiftyStoreKit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 48d4d4c Add Adapty alternative (#689)
Cloned https://github.com/bizz84/SwiftyStoreKit.git
Revision (git rev-parse @):
48d4d4c0b6a66732eb45e2f0104fb7d080c67a69
SUCCESS checkout https://github.com/bizz84/SwiftyStoreKit.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "swiftystorekit",
"name": "SwiftyStoreKit",
"url": "https://github.com/bizz84/SwiftyStoreKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftyStoreKit",
"dependencies": [
]
}
]
}
Fetching https://github.com/bizz84/SwiftyStoreKit.git
[1/4262] Fetching swiftystorekit
Fetched https://github.com/bizz84/SwiftyStoreKit.git from cache (1.29s)
Creating working copy for https://github.com/bizz84/SwiftyStoreKit.git
Working copy of https://github.com/bizz84/SwiftyStoreKit.git resolved at master (48d4d4c)
warning: '.resolve-product-dependencies': dependency 'swiftystorekit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/bizz84/SwiftyStoreKit.git
https://github.com/bizz84/SwiftyStoreKit.git
{
"dependencies" : [
],
"manifest_display_name" : "SwiftyStoreKit",
"name" : "SwiftyStoreKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "9.0"
},
{
"name" : "macos",
"version" : "10.10"
},
{
"name" : "tvos",
"version" : "9.0"
},
{
"name" : "watchos",
"version" : "6.2"
}
],
"products" : [
{
"name" : "SwiftyStoreKit",
"targets" : [
"SwiftyStoreKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftyStoreKitTests",
"module_type" : "SwiftTarget",
"name" : "SwiftyStoreKitTests",
"path" : "Tests/SwiftyStoreKitTests",
"sources" : [
"CompleteTransactionsControllerTests.swift",
"InAppReceiptTests.swift",
"InAppReceiptVerificatorTests.swift",
"PaymentQueueControllerTests.swift",
"PaymentQueueSpy.swift",
"PaymentTransactionObserverFake.swift",
"PaymentsControllerTests.swift",
"ProductsInfoControllerTests.swift",
"RestorePurchasesControllerTests.swift",
"TestPaymentTransaction.swift",
"TestProduct.swift"
],
"target_dependencies" : [
"SwiftyStoreKit"
],
"type" : "test"
},
{
"c99name" : "SwiftyStoreKit",
"module_type" : "SwiftTarget",
"name" : "SwiftyStoreKit",
"path" : "Sources/SwiftyStoreKit",
"product_memberships" : [
"SwiftyStoreKit"
],
"sources" : [
"AppleReceiptValidator.swift",
"CompleteTransactionsController.swift",
"InAppProductQueryRequest.swift",
"InAppReceipt.swift",
"InAppReceiptRefreshRequest.swift",
"InAppReceiptVerificator.swift",
"OS.swift",
"PaymentQueueController.swift",
"PaymentsController.swift",
"ProductsInfoController.swift",
"RestorePurchasesController.swift",
"SKProduct+LocalizedPrice.swift",
"SKProductDiscount+LocalizedPrice.swift",
"SwiftyStoreKit+Types.swift",
"SwiftyStoreKit.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/17] Compiling SwiftyStoreKit SKProductDiscount+LocalizedPrice.swift
[4/17] Compiling SwiftyStoreKit SwiftyStoreKit+Types.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit+Types.swift:255:10: warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'AnyObject'; this is an error in the Swift 6 language mode
253 | case jsonDecodeError(string: String?)
254 | /// Receive invalid - bad status returned
255 | case receiptInvalid(receipt: ReceiptInfo, status: ReceiptStatus)
| `- warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'AnyObject'; this is an error in the Swift 6 language mode
256 | }
257 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit+Types.swift:255:10: warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'ReceiptStatus'; this is an error in the Swift 6 language mode
253 | case jsonDecodeError(string: String?)
254 | /// Receive invalid - bad status returned
255 | case receiptInvalid(receipt: ReceiptInfo, status: ReceiptStatus)
| `- warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'ReceiptStatus'; this is an error in the Swift 6 language mode
256 | }
257 |
:
259 | ///
260 | /// See Table 2-1 Status codes
261 | public enum ReceiptStatus: Int {
| `- note: consider making enum 'ReceiptStatus' conform to the 'Sendable' protocol
262 | /// Not decodable status
263 | case unknown = -2
[5/17] Compiling SwiftyStoreKit SKProduct+LocalizedPrice.swift
[6/18] Compiling SwiftyStoreKit InAppReceiptRefreshRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptRefreshRequest.swift:82:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
80 | private func performCallback(_ result: ResultType) {
81 | DispatchQueue.main.async {
82 | self.callback(result)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptVerificator.swift:115:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 | DispatchQueue.main.async {
115 | completion(result)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 | }
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptVerificator.swift:115:28: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 | DispatchQueue.main.async {
115 | completion(result)
| |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 | }
117 | }
[7/18] Compiling SwiftyStoreKit InAppReceiptVerificator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptRefreshRequest.swift:82:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
80 | private func performCallback(_ result: ResultType) {
81 | DispatchQueue.main.async {
82 | self.callback(result)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptVerificator.swift:115:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 | DispatchQueue.main.async {
115 | completion(result)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 | }
117 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppReceiptVerificator.swift:115:28: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 | DispatchQueue.main.async {
115 | completion(result)
| |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 | }
117 | }
[8/18] Compiling SwiftyStoreKit PaymentsController.swift
[9/18] Compiling SwiftyStoreKit ProductsInfoController.swift
[10/18] Compiling SwiftyStoreKit OS.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/PaymentQueueController.swift:81:1: warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
79 | }
80 |
81 | extension SKPaymentTransactionState: CustomDebugStringConvertible {
| |- warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
82 |
83 | public var debugDescription: String {
[11/18] Compiling SwiftyStoreKit PaymentQueueController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/PaymentQueueController.swift:81:1: warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
79 | }
80 |
81 | extension SKPaymentTransactionState: CustomDebugStringConvertible {
| |- warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
82 |
83 | public var debugDescription: String {
[12/18] Compiling SwiftyStoreKit RestorePurchasesController.swift
[13/18] Compiling SwiftyStoreKit AppleReceiptValidator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/AppleReceiptValidator.swift:79:5: warning: capture of 'completion' with non-sendable type '(VerifyReceiptResult) -> Void' in a '@Sendable' closure
77 | // there is an error
78 | if let networkError = error {
79 | completion(.error(error: .networkError(error: networkError)))
| |- warning: capture of 'completion' with non-sendable type '(VerifyReceiptResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | return
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/AppleReceiptValidator.swift:112:21: warning: capture of 'self' with non-sendable type 'AppleReceiptValidator' in a '@Sendable' closure
28 | // https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html
29 |
30 | public class AppleReceiptValidator: ReceiptValidator {
| `- note: class 'AppleReceiptValidator' does not conform to the 'Sendable' protocol
31 |
32 | public enum VerifyReceiptURLType: String {
:
110 | let receiptStatus = ReceiptStatus(rawValue: status) ?? ReceiptStatus.unknown
111 | if case .testReceipt = receiptStatus {
112 | self.service = .sandbox
| `- warning: capture of 'self' with non-sendable type 'AppleReceiptValidator' in a '@Sendable' closure
113 | self.validate(receiptData: receiptData, completion: completion)
114 | } else {
[14/18] Compiling SwiftyStoreKit CompleteTransactionsController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/AppleReceiptValidator.swift:79:5: warning: capture of 'completion' with non-sendable type '(VerifyReceiptResult) -> Void' in a '@Sendable' closure
77 | // there is an error
78 | if let networkError = error {
79 | completion(.error(error: .networkError(error: networkError)))
| |- warning: capture of 'completion' with non-sendable type '(VerifyReceiptResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | return
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/AppleReceiptValidator.swift:112:21: warning: capture of 'self' with non-sendable type 'AppleReceiptValidator' in a '@Sendable' closure
28 | // https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html
29 |
30 | public class AppleReceiptValidator: ReceiptValidator {
| `- note: class 'AppleReceiptValidator' does not conform to the 'Sendable' protocol
31 |
32 | public enum VerifyReceiptURLType: String {
:
110 | let receiptStatus = ReceiptStatus(rawValue: status) ?? ReceiptStatus.unknown
111 | if case .testReceipt = receiptStatus {
112 | self.service = .sandbox
| `- warning: capture of 'self' with non-sendable type 'AppleReceiptValidator' in a '@Sendable' closure
113 | self.validate(receiptData: receiptData, completion: completion)
114 | } else {
[15/18] Emitting module SwiftyStoreKit
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/PaymentQueueController.swift:81:1: warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
79 | }
80 |
81 | extension SKPaymentTransactionState: CustomDebugStringConvertible {
| |- warning: extension declares a conformance of imported type 'SKPaymentTransactionState' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'StoreKit' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
82 |
83 | public var debugDescription: String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit+Types.swift:255:10: warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'AnyObject'; this is an error in the Swift 6 language mode
253 | case jsonDecodeError(string: String?)
254 | /// Receive invalid - bad status returned
255 | case receiptInvalid(receipt: ReceiptInfo, status: ReceiptStatus)
| `- warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'AnyObject'; this is an error in the Swift 6 language mode
256 | }
257 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit+Types.swift:255:10: warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'ReceiptStatus'; this is an error in the Swift 6 language mode
253 | case jsonDecodeError(string: String?)
254 | /// Receive invalid - bad status returned
255 | case receiptInvalid(receipt: ReceiptInfo, status: ReceiptStatus)
| `- warning: associated value 'receiptInvalid(receipt:status:)' of 'Sendable'-conforming enum 'ReceiptError' has non-sendable type 'ReceiptStatus'; this is an error in the Swift 6 language mode
256 | }
257 |
:
259 | ///
260 | /// See Table 2-1 Status codes
261 | public enum ReceiptStatus: Int {
| `- note: consider making enum 'ReceiptStatus' conform to the 'Sendable' protocol
262 | /// Not decodable status
263 | case unknown = -2
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:140:28: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'SwiftyStoreKit' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import StoreKit
26 |
27 | public class SwiftyStoreKit {
| `- note: class 'SwiftyStoreKit' does not conform to the 'Sendable' protocol
28 |
29 | private let productsInfoController: ProductsInfoController
:
138 |
139 | // MARK: Singleton
140 | fileprivate static let sharedInstance = SwiftyStoreKit()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'SwiftyStoreKit' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |
142 | // MARK: Public methods - Purchases
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:220:23: warning: static property 'shouldAddStorePaymentHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
218 | /// Register a handler for `SKPaymentQueue.shouldAddStorePayment` delegate method.
219 | /// - requires: iOS 11.0+
220 | public static var shouldAddStorePaymentHandler: ShouldAddStorePaymentHandler? {
| |- warning: static property 'shouldAddStorePaymentHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldAddStorePaymentHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldAddStorePaymentHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
221 | didSet {
222 | sharedInstance.paymentQueueController.shouldAddStorePaymentHandler = shouldAddStorePaymentHandler
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:228:23: warning: static property 'updatedDownloadsHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
226 | /// Register a handler for `paymentQueue(_:updatedDownloads:)`
227 | /// - seealso: `paymentQueue(_:updatedDownloads:)`
228 | public static var updatedDownloadsHandler: UpdatedDownloadsHandler? {
| |- warning: static property 'updatedDownloadsHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'updatedDownloadsHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'updatedDownloadsHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
229 | didSet {
230 | sharedInstance.paymentQueueController.updatedDownloadsHandler = updatedDownloadsHandler
[16/18] Compiling SwiftyStoreKit InAppProductQueryRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppProductQueryRequest.swift:90:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
88 | private func performCallback(_ results: RetrieveResults) {
89 | DispatchQueue.main.async {
90 | self.callback(results)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
91 | }
92 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppProductQueryRequest.swift:90:27: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
88 | private func performCallback(_ results: RetrieveResults) {
89 | DispatchQueue.main.async {
90 | self.callback(results)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
91 | }
92 | }
[17/18] Compiling SwiftyStoreKit InAppReceipt.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppProductQueryRequest.swift:90:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
88 | private func performCallback(_ results: RetrieveResults) {
89 | DispatchQueue.main.async {
90 | self.callback(results)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
91 | }
92 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/InAppProductQueryRequest.swift:90:27: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
88 | private func performCallback(_ results: RetrieveResults) {
89 | DispatchQueue.main.async {
90 | self.callback(results)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
91 | }
92 | }
[18/18] Compiling SwiftyStoreKit SwiftyStoreKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:140:28: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'SwiftyStoreKit' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import StoreKit
26 |
27 | public class SwiftyStoreKit {
| `- note: class 'SwiftyStoreKit' does not conform to the 'Sendable' protocol
28 |
29 | private let productsInfoController: ProductsInfoController
:
138 |
139 | // MARK: Singleton
140 | fileprivate static let sharedInstance = SwiftyStoreKit()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'SwiftyStoreKit' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |
142 | // MARK: Public methods - Purchases
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:220:23: warning: static property 'shouldAddStorePaymentHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
218 | /// Register a handler for `SKPaymentQueue.shouldAddStorePayment` delegate method.
219 | /// - requires: iOS 11.0+
220 | public static var shouldAddStorePaymentHandler: ShouldAddStorePaymentHandler? {
| |- warning: static property 'shouldAddStorePaymentHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldAddStorePaymentHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldAddStorePaymentHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
221 | didSet {
222 | sharedInstance.paymentQueueController.shouldAddStorePaymentHandler = shouldAddStorePaymentHandler
/Users/admin/builder/spi-builder-workspace/Sources/SwiftyStoreKit/SwiftyStoreKit.swift:228:23: warning: static property 'updatedDownloadsHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
226 | /// Register a handler for `paymentQueue(_:updatedDownloads:)`
227 | /// - seealso: `paymentQueue(_:updatedDownloads:)`
228 | public static var updatedDownloadsHandler: UpdatedDownloadsHandler? {
| |- warning: static property 'updatedDownloadsHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'updatedDownloadsHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'updatedDownloadsHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
229 | didSet {
230 | sharedInstance.paymentQueueController.updatedDownloadsHandler = updatedDownloadsHandler
Build complete! (8.22s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftyStoreKit",
"name" : "SwiftyStoreKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "9.0"
},
{
"name" : "macos",
"version" : "10.10"
},
{
"name" : "tvos",
"version" : "9.0"
},
{
"name" : "watchos",
"version" : "6.2"
}
],
"products" : [
{
"name" : "SwiftyStoreKit",
"targets" : [
"SwiftyStoreKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftyStoreKitTests",
"module_type" : "SwiftTarget",
"name" : "SwiftyStoreKitTests",
"path" : "Tests/SwiftyStoreKitTests",
"sources" : [
"CompleteTransactionsControllerTests.swift",
"InAppReceiptTests.swift",
"InAppReceiptVerificatorTests.swift",
"PaymentQueueControllerTests.swift",
"PaymentQueueSpy.swift",
"PaymentTransactionObserverFake.swift",
"PaymentsControllerTests.swift",
"ProductsInfoControllerTests.swift",
"RestorePurchasesControllerTests.swift",
"TestPaymentTransaction.swift",
"TestProduct.swift"
],
"target_dependencies" : [
"SwiftyStoreKit"
],
"type" : "test"
},
{
"c99name" : "SwiftyStoreKit",
"module_type" : "SwiftTarget",
"name" : "SwiftyStoreKit",
"path" : "Sources/SwiftyStoreKit",
"product_memberships" : [
"SwiftyStoreKit"
],
"sources" : [
"AppleReceiptValidator.swift",
"CompleteTransactionsController.swift",
"InAppProductQueryRequest.swift",
"InAppReceipt.swift",
"InAppReceiptRefreshRequest.swift",
"InAppReceiptVerificator.swift",
"OS.swift",
"PaymentQueueController.swift",
"PaymentsController.swift",
"ProductsInfoController.swift",
"RestorePurchasesController.swift",
"SKProduct+LocalizedPrice.swift",
"SKProductDiscount+LocalizedPrice.swift",
"SwiftyStoreKit+Types.swift",
"SwiftyStoreKit.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.