Build Information
Successful build of Flare, reference dev (8f6b82
), with Swift 6.0 for macOS (SPM) on 7 Nov 2024 00:21:55 UTC.
Swift 6 data race errors: 40
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[332/339] Compiling FlareUI SubscriptionsViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[333/339] Compiling FlareUI SubscriptionsViewModelViewFactory.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[334/339] Compiling FlareUI SubscriptionsWrapperView.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[335/339] Compiling FlareUI LoadingView.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[336/339] Compiling FlareUI SubscriptionHeaderView.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[337/339] Compiling FlareUI SubscriptionToolbarView.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[338/339] Compiling FlareUI SubscriptionView.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[339/339] Compiling FlareUI resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
12 | @available(visionOS, unavailable)
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
15 | CompactSubscriptionWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift:22:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
20 | // MARK: Initialization
21 |
22 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
23 | self.configuration = configuration
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
10 | @available(tvOS, unavailable)
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
| `- note: add '@MainActor' to make instance method 'makeBody(configuration:)' part of global actor 'MainActor'
13 | FullSubscriptionsWrapperView(configuration: configuration)
| `- warning: call to main actor-isolated initializer 'init(configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift:21:5: note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
19 | // MARK: Initialization
20 |
21 | init(configuration: SubscriptionsWrapperViewStyleConfiguration) {
| `- note: calls to initializer 'init(configuration:)' from outside of its actor context are implicitly asynchronous
22 | self.configuration = configuration
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/DateComponentsFormatter+Full.swift:9:16: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
7 |
8 | extension DateComponentsFormatter {
9 | static let full: IDateComponentsFormatter = {
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'any IDateComponentsFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'full' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | let formatter = DateComponentsFormatter()
11 | formatter.maximumUnitCount = 1
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Formatters/IDateComponentsFormatter.swift:11:10: note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
9 |
10 | /// A type that creates string representations of quantities of time.
11 | protocol IDateComponentsFormatter {
| `- note: protocol 'IDateComponentsFormatter' does not conform to the 'Sendable' protocol
12 | /// The bitmask of calendrical units such as day and month to include in the output string.
13 | var allowedUnits: NSCalendar.Unit { get set }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: call to main actor-isolated instance method 'eraseToAnyView()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Core/Extensions/View+EraseToAnyView.swift:9:10: note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
7 |
8 | extension View {
9 | func eraseToAnyView() -> AnyView {
| `- note: calls to instance method 'eraseToAnyView()' from outside of its actor context are implicitly asynchronous
10 | AnyView(self)
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | // MARK: ISubscriptionAssembly
38 |
39 | func assemble(ids: some Collection<String>) -> AnyView {
| `- note: add '@MainActor' to make instance method 'assemble(ids:)' part of global actor 'MainActor'
40 | let viewModelFactory = SubscriptionsViewModelViewFactory(
41 | subscriptionStatusVerifier: subscriptionStatusVerifierProvider.subscriptionStatusVerifier
:
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| `- warning: call to main actor-isolated initializer 'init(viewModel:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:29:5: note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
27 | // MARK: Initialization
28 |
29 | init(viewModel: WrapperViewModel<ViewModel>) {
| `- note: calls to initializer 'init(viewModel:)' from outside of its actor context are implicitly asynchronous
30 | self.viewModel = viewModel
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:72:47: warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
70 | Task { @MainActor in
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
| `- warning: non-sendable type '[StoreProduct]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
73 | .filter { $0.productType == .autoRenewableSubscription }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreProduct.swift:12:20: note: class 'StoreProduct' does not conform to the 'Sendable' protocol
10 |
11 | /// An object represents a StoreKit product.
12 | public final class StoreProduct: NSObject {
| `- note: class 'StoreProduct' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:6:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
4 | //
5 |
6 | import Flare
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Flare'
7 | import Foundation
8 | import StoreKit
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:34:5: warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
7 |
8 | @available(watchOS, unavailable)
9 | struct SubscriptionsWrapperView: View, IViewWrapper {
| `- note: add '@preconcurrency' to the 'IViewWrapper' conformance to defer isolation checking to run time
10 | // MARK: Propertirs
11 |
:
32 | // MARK: Initialization
33 |
34 | init(viewModel: SubscriptionsViewModel) {
| |- warning: main actor-isolated initializer 'init(viewModel:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
| `- note: add 'nonisolated' to 'init(viewModel:)' to make this initializer not isolated to the actor
35 | self.viewModel = viewModel
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Helpers/ViewWrapper.swift:17:5: note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
15 | ///
16 | /// - Parameter viewModel: The view model.
17 | init(viewModel: ViewModel)
| `- note: mark the protocol requirement 'init(viewModel:)' 'async' to allow actor-isolated conformances
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| `- warning: non-sendable type 'StoreTransaction' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Classes/Models/StoreTransaction.swift:12:20: note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
10 |
11 | /// A class represent a StoreKit transaction.
12 | public final class StoreTransaction {
| `- note: class 'StoreTransaction' does not conform to the 'Sendable' protocol
13 | // MARK: Properties
14 |
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift:15:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
13 | struct CompactSubscriptionWrapperViewStyle: ISubscriptionsWrapperViewStyle {
14 | func makeBody(configuration: Configuration) -> some View {
15 | CompactSubscriptionWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift:13:9: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
11 | struct FullSubscriptionsWrapperViewStyle: ISubscriptionsWrapperViewStyle {
12 | func makeBody(configuration: Configuration) -> some View {
13 | FullSubscriptionsWrapperView(configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
14 | }
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:52:76: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
50 | )
51 | presenter.viewModel = viewModel
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
| |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'viewModel' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift:54:14: warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
52 | return ViewWrapper<SubscriptionsViewModel, SubscriptionsWrapperView>(viewModel: viewModel)
53 | .environment(\.storeButtonsAssembly, storeButtonsAssembly)
54 | .eraseToAnyView()
| `- warning: sending task-isolated value of type 'some View' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:70:14: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
68 |
69 | private func loadProducts() {
70 | Task { @MainActor in
| `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
71 | do {
72 | self.products = try await iap.fetch(productIDs: ids)
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.products' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.products' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift:80:60: warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
78 | }
79 |
80 | let viewModel = try await viewModelFactory.make(products)
| |- warning: sending 'self.viewModelFactory' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModelFactory' to nonisolated instance method 'make' risks causing data races between nonisolated and main actor-isolated uses
81 |
82 | update(state: .products(viewModel))
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.purchaseOptions' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.purchaseOptions' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift:122:70: warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
120 | Task {
121 | do {
122 | let transaction = try await self.viewModel.presenter.subscribe(optionsHandler: purchaseOptions)
| |- warning: sending 'self.viewModel.presenter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.viewModel.presenter' to nonisolated instance method 'subscribe(optionsHandler:)' risks causing data races between nonisolated and main actor-isolated uses
123 | purchaseCompletion?(product, .success(transaction))
124 | } catch {
[340/347] Compiling FlareUIMock StoreButtonAssemblyMock.swift
[341/347] Compiling FlareUIMock ProductPresenterMock.swift
[342/347] Compiling FlareUIMock SubscriptionsPresenterMock.swift
[343/347] Compiling FlareUIMock StoreButtonsAssemblyMock.swift
[344/347] Compiling FlareUIMock ProductsPresenterMock.swift
[345/347] Compiling FlareUIMock ProductViewAssemblyMock.swift
[346/347] Emitting module FlareUIMock
[347/347] Compiling FlareUIMock FlareMock.swift
Build complete! (55.93s)
warning: 'atomic': /Users/admin/builder/spi-builder-workspace/.build/checkouts/atomic/Package.swift:12:16: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
10 | .iOS(.v13),
11 | .watchOS(.v6),
12 | .tvOS(.v11),
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
13 | .visionOS(.v1),
14 | ],
warning: 'spi-builder-workspace': found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Sources/Flare/swiftgen.yml
/Users/admin/builder/spi-builder-workspace/Sources/Flare/Makefile
warning: 'spi-builder-workspace': found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/swiftgen.yml
/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Makefile
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "concurrency",
"requirement" : {
"range" : [
{
"lower_bound" : "0.0.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/space-code/concurrency.git"
},
{
"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"
},
{
"identity" : "log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/space-code/log.git"
},
{
"identity" : "atomic",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/space-code/atomic.git"
},
{
"identity" : "swift-snapshot-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "1.15.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-snapshot-testing"
}
],
"manifest_display_name" : "Flare",
"name" : "Flare",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "7.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Flare",
"targets" : [
"Flare"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "FlareUI",
"targets" : [
"FlareUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SnapshotTests",
"module_type" : "SwiftTarget",
"name" : "SnapshotTests",
"path" : "Tests/SnapshotTests",
"product_dependencies" : [
"SnapshotTesting"
],
"sources" : [
"Helpers/SnapshotTestCase.swift",
"Helpers/ThemableView.swift",
"ProductInfoViewSnapshotTests.swift",
"ProductPlaceholderViewSnapshotTests.swift",
"ProductViewSnapshotTests.swift",
"ProductsViewSnapshotTests.swift",
"SubscriptionsViewSnapshotTests.swift"
],
"target_dependencies" : [
"Flare",
"FlareUIMock"
],
"type" : "test"
},
{
"c99name" : "FlareUITests",
"module_type" : "SwiftTarget",
"name" : "FlareUITests",
"path" : "Tests/FlareUITests",
"sources" : [
"UnitTests/Core/Extensions/ArrayExtensionsTests.swift",
"UnitTests/Core/SubscriptionPriceViewModelFactoryTests.swift",
"UnitTests/Fakes/SubscriptionView.ViewModel+Fake.swift",
"UnitTests/Helpers/XCTestCase+.swift",
"UnitTests/Helpers/XCTestCase+Wait.swift",
"UnitTests/Mocks/DateComponentsFormatterMock.swift",
"UnitTests/Mocks/ProductFetcherMock.swift",
"UnitTests/Mocks/ProductPurchaseServiceMock.swift",
"UnitTests/Mocks/SubscriptionDateComponentsFactoryMock.swift",
"UnitTests/Mocks/SubscriptionPriceViewModelFactoryMock.swift",
"UnitTests/Mocks/SubscriptionsViewModelViewFactoryMock.swift",
"UnitTests/Presentation/Product/ProductPresenterTests.swift",
"UnitTests/Presentation/Product/ProductStrategyTests.swift",
"UnitTests/Presentation/Product/ProductViewModelFactoryTests.swift",
"UnitTests/Presentation/Product/SubscriptionDateComponentsFactoryTests.swift",
"UnitTests/Presentation/Products/ProductsPresenterTests.swift",
"UnitTests/Presentation/StoreButton/StoreButtonPresenterTests.swift",
"UnitTests/Presentation/Subscriptions/SubscriptionsPresenterTests.swift"
],
"target_dependencies" : [
"FlareUI",
"FlareMock",
"FlareUIMock"
],
"type" : "test"
},
{
"c99name" : "FlareUIMock",
"module_type" : "SwiftTarget",
"name" : "FlareUIMock",
"path" : "Sources/FlareUIMock",
"sources" : [
"Mocks/FlareMock.swift",
"Mocks/ProductPresenterMock.swift",
"Mocks/ProductViewAssemblyMock.swift",
"Mocks/ProductsPresenterMock.swift",
"Mocks/StoreButtonAssemblyMock.swift",
"Mocks/StoreButtonsAssemblyMock.swift",
"Mocks/SubscriptionsPresenterMock.swift"
],
"target_dependencies" : [
"FlareMock",
"FlareUI"
],
"type" : "library"
},
{
"c99name" : "FlareUI",
"module_type" : "SwiftTarget",
"name" : "FlareUI",
"path" : "Sources/FlareUI",
"product_memberships" : [
"FlareUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Resources/Assets/Assets.xcassets",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Resources/Assets/Media.xcassets",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Resources/Localization/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/FlareUI/Resources/Localization/ru.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ru"
}
}
}
],
"sources" : [
"Classes/Core/EnvironmentKey/AnyProductStyle.swift",
"Classes/Core/EnvironmentKey/AnySubscriptionControlStyle.swift",
"Classes/Core/EnvironmentKey/Assemblies/ProductAssemblyKey.swift",
"Classes/Core/EnvironmentKey/Assemblies/StoreButtonsAssemblyKey.swift",
"Classes/Core/EnvironmentKey/BlurEffectStyleKey.swift",
"Classes/Core/EnvironmentKey/PoliciesButtonStyleKey.swift",
"Classes/Core/EnvironmentKey/ProductStyleKey.swift",
"Classes/Core/EnvironmentKey/PurchaseCompletionKey.swift",
"Classes/Core/EnvironmentKey/PurchaseOptionKey.swift",
"Classes/Core/EnvironmentKey/StoreButtonKey.swift",
"Classes/Core/EnvironmentKey/StoreButtonViewFontWeightKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionBackgroundKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionControlStyleKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionHeaderContentBackgroundKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionMarketingContentKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionPickerItemBackgroundKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionPrivacyPolicyDestinationKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionPrivacyPolicyURLKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionStoreButtonLabelKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionTermsOfServiceDestinationKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionTermsOfServiceURLKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionViewTintKey.swift",
"Classes/Core/EnvironmentKey/SubscriptionsWrapperViewStyleKey.swift",
"Classes/Core/EnvironmentKey/TintColorKey.swift",
"Classes/Core/Extensions/Array+RemoveDuplicates.swift",
"Classes/Core/Extensions/String+SubSequence.swift",
"Classes/Core/Extensions/StringProtocol+Words.swift",
"Classes/Core/Extensions/View+EraseToAnyView.swift",
"Classes/Core/Formatters/DateComponentsFormatter+Full.swift",
"Classes/Core/Formatters/IDateComponentsFormatter.swift",
"Classes/Core/Helpers/Array+StoreProduct.swift",
"Classes/Core/Helpers/Color+UIColor.swift",
"Classes/Core/Helpers/Error+IAP.swift",
"Classes/Core/Helpers/Value.swift",
"Classes/Core/Models/Internal/PriceDisplayFormat.swift",
"Classes/Core/Models/Internal/ProductStyle.swift",
"Classes/Core/Models/PaywallType.swift",
"Classes/Core/Models/PurchaseOptions.swift",
"Classes/Core/Models/SubscriptionStatusVerifierType.swift",
"Classes/Core/Models/SubscriptionStoreButtonLabel.swift",
"Classes/Core/Models/UIConfiguration.swift",
"Classes/Core/Providers/ConfigurationProvider/ConfigurationProvider.swift",
"Classes/Core/Providers/ConfigurationProvider/IConfigurationProvider.swift",
"Classes/Core/Providers/SubscriptionStatusProvider/ISubscriptionStatusVerifierProvider.swift",
"Classes/Core/Providers/SubscriptionStatusProvider/SubscriptionStatusVerifierProvider.swift",
"Classes/Core/Providers/SubscriptionStatusVerifier/ISubscriptionStatusVerifier.swift",
"Classes/Core/Providers/SubscriptionStatusVerifier/SubscriptionStatusVerifier.swift",
"Classes/Core/Resolvers/SubscriptionStatusVerifierTypeResolver/ISubscriptionStatusVerifierTypeResolver.swift",
"Classes/Core/Resolvers/SubscriptionStatusVerifierTypeResolver/SubscriptionStatusVerifierTypeResolver.swift",
"Classes/DI/Dependencies/FlareDependencies.swift",
"Classes/DI/Dependencies/IFlareDependencies.swift",
"Classes/DI/PresentationAssembly/IPresentationAssembly.swift",
"Classes/DI/PresentationAssembly/PresentationAssembly.swift",
"Classes/FlareUI.swift",
"Classes/Generated/Colors.swift",
"Classes/Generated/Media.swift",
"Classes/Generated/Strings.swift",
"Classes/IFlareUI.swift",
"Classes/Presentation/Components/Controllers/BaseHostingController/BaseHostingController.swift",
"Classes/Presentation/Components/Controllers/Helpers/ColorRepresentation.swift",
"Classes/Presentation/Components/Controllers/Helpers/SUIViewWrapper.swift",
"Classes/Presentation/Components/Controllers/ProductViewController/ProductViewController.swift",
"Classes/Presentation/Components/Controllers/ProductViewController/ProductViewControllerViewModel.swift",
"Classes/Presentation/Components/Controllers/ProductsViewController/ProductsViewController.swift",
"Classes/Presentation/Components/Controllers/ProductsViewController/ProductsViewControllerViewModel.swift",
"Classes/Presentation/Components/Controllers/SubscriptionsViewController/SubscriptionsViewController.swift",
"Classes/Presentation/Components/Controllers/SubscriptionsViewController/SubscriptionsViewControllerViewModel.swift",
"Classes/Presentation/Components/Controllers/ViewController/HostingController.swift",
"Classes/Presentation/Components/Controllers/ViewController/ViewController.swift",
"Classes/Presentation/Components/Core/Constants/Palette.swift",
"Classes/Presentation/Components/Core/Constants/UIConstants.swift",
"Classes/Presentation/Components/Core/Models/StoreButtonType.swift",
"Classes/Presentation/Components/Core/Models/StoreButtonVisibility.swift",
"Classes/Presentation/Components/Core/Protocols/IModel.swift",
"Classes/Presentation/Components/Core/Protocols/IPresenter.swift",
"Classes/Presentation/Components/Factories/ISubscriptionPriceViewModelFactory.swift",
"Classes/Presentation/Components/Factories/SubscriptionPriceViewModelFactory.swift",
"Classes/Presentation/Components/Helpers/SUI/View+Contrast.swift",
"Classes/Presentation/Components/Helpers/SUI/View+Paywall.swift",
"Classes/Presentation/Components/Helpers/SUI/View+ProductViewStyle.swift",
"Classes/Presentation/Components/Helpers/SUI/View+PurchaseCompletion.swift",
"Classes/Presentation/Components/Helpers/SUI/View+PurchaseOption.swift",
"Classes/Presentation/Components/Helpers/SUI/View+StoreButton.swift",
"Classes/Presentation/Components/Helpers/SUI/View+StoreButtonViewFontWeight.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionBackground.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionControlStyle.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionHeaderContentBackground.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionMarketingContent.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionPickerItemBackground.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionPrivacyPolicyDestination.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionPrivacyPolicyURL.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionStoreButtonLabel.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionTermsOfServiceDestination.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionTermsOfServiceURL.swift",
"Classes/Presentation/Components/Helpers/SUI/View+SubscriptionViewTint.swift",
"Classes/Presentation/Components/Helpers/SUI/View+TintColor.swift",
"Classes/Presentation/Components/Helpers/UIKit/ViewController+Child.swift",
"Classes/Presentation/Components/Styles/BorderedButtonStyle.swift",
"Classes/Presentation/Components/Styles/PrimaryButtonStyle.swift",
"Classes/Presentation/Components/Styles/Product/CompactProductStyle.swift",
"Classes/Presentation/Components/Styles/Product/Configuration/ProductStyleConfiguration.swift",
"Classes/Presentation/Components/Styles/Product/LargeProductStyle.swift",
"Classes/Presentation/Components/Styles/Product/Protocols/IProductStyle+Compact.swift",
"Classes/Presentation/Components/Styles/Product/Protocols/IProductStyle+Large.swift",
"Classes/Presentation/Components/Styles/Product/Protocols/IProductStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/Configuration/SubscriptionStoreControlStyleConfiguration.swift",
"Classes/Presentation/Components/Styles/Subscription/Extensions/ISubscriptionControlStyle+Bordered.swift",
"Classes/Presentation/Components/Styles/Subscription/Extensions/ISubscriptionControlStyle+PickerSubscriptionStoreControlStyle+PickerSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/Extensions/ISubscriptionControlStyle+ProminentPickerSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/Protocols/ISubscriptionControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/AutomaticSubscriptionControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/BorderedSubscriptionStoreControlStyle/BorderedSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/BorderedSubscriptionStoreControlStyle/BorderedSubscriptionStoreControlStyleView.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/ButtonSubscriptionStoreControlStyle/ButtonSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/CardButtonSubscriptionStoreControlStyle/CardButtonSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/CardButtonSubscriptionStoreControlStyle/CardButtonSubscriptionStoreControlView.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/PickerSubscriptionStoreControlStyle/PickerSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/PickerSubscriptionStoreControlStyle/PickerSubscriptionStoreControlStyleView.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/ProminentPickerSubscriptionStoreControlStyle/ProminentPickerSubscriptionStoreControlStyle.swift",
"Classes/Presentation/Components/Styles/Subscription/SubscriptionStoreControlStyle/ProminentPickerSubscriptionStoreControlStyle/ProminentPickerSubscriptionStoreControlStyleView.swift",
"Classes/Presentation/Components/ViewModifiers/ActivityIndicatorModifier.swift",
"Classes/Presentation/Components/ViewModifiers/BlurEffectModifier.swift",
"Classes/Presentation/Components/ViewModifiers/ErrorAlertViewModifier.swift",
"Classes/Presentation/Components/ViewModifiers/LoadViewModifier.swift",
"Classes/Presentation/Components/ViewModifiers/PaywallViewModifier.swift",
"Classes/Presentation/Components/Views/ActivityIndicator/ActivityIndicatorView.swift",
"Classes/Presentation/Components/Views/BlurVisualEffectView/BlurVisualEffectView.swift",
"Classes/Presentation/Components/Views/ImageView/ImageView.swift",
"Classes/Presentation/Components/Views/ProductPlaceholderView/ProductPlaceholderView.swift",
"Classes/Presentation/Components/Views/SafariWebView/SafariWebView.swift",
"Classes/Presentation/Helpers/ViewWrapper.swift",
"Classes/Presentation/Helpers/WrapperViewModel.swift",
"Classes/Presentation/Views/PaywallView/PaywallView.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/PoliciesButtonAssembly.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/PoliciesButtonView.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/AnyPoliciesButtonStyle.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/AutomaticPoliciesButtonStyle/AutomaticPoliciesButtonStyle.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/Configuration/PoliciesButtonStyleConfiguration.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/DefaultPoliciesButtonStyle/DefaultPoliciesButtonStyle.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/DefaultPoliciesButtonStyle/DefaultPoliciesButtonStyleView.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/IPoliciesButtonStyle.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Styles/TVPoliciesButtonStyle/TVPoliciesButtonStyle.swift",
"Classes/Presentation/Views/PoliciesButtonAssembly/Views/PoliciesUnavailableView.swift",
"Classes/Presentation/Views/ProductView/ProductPresenter.swift",
"Classes/Presentation/Views/ProductView/ProductPurchaseService.swift",
"Classes/Presentation/Views/ProductView/ProductView.swift",
"Classes/Presentation/Views/ProductView/ProductViewAssembly.swift",
"Classes/Presentation/Views/ProductView/ProductViewModel.swift",
"Classes/Presentation/Views/ProductView/ProductViewModelFactory.swift",
"Classes/Presentation/Views/ProductView/ProductViewType.swift",
"Classes/Presentation/Views/ProductView/ProductWrapperView.swift",
"Classes/Presentation/Views/ProductView/Strategies/ProductStrategy.swift",
"Classes/Presentation/Views/ProductView/SubscriptionDateComponentsFactory.swift",
"Classes/Presentation/Views/ProductView/Views/ProductInfoView/ProductInfoView.swift",
"Classes/Presentation/Views/ProductsView/ProductsPresenter.swift",
"Classes/Presentation/Views/ProductsView/ProductsView.swift",
"Classes/Presentation/Views/ProductsView/ProductsViewAssembly.swift",
"Classes/Presentation/Views/ProductsView/ProductsViewModel.swift",
"Classes/Presentation/Views/ProductsView/ProductsWrapperView.swift",
"Classes/Presentation/Views/ProductsView/Views/StoreUnavaliableView.swift",
"Classes/Presentation/Views/StoreButtonView/StoreButton.swift",
"Classes/Presentation/Views/StoreButtonView/StoreButtonAssembly.swift",
"Classes/Presentation/Views/StoreButtonView/StoreButtonPresenter.swift",
"Classes/Presentation/Views/StoreButtonView/StoreButtonView.swift",
"Classes/Presentation/Views/StoreButtonView/StoreButtonViewModel.swift",
"Classes/Presentation/Views/StoreButtonsView/StoreButtonsAssembly.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/AnySubscriptionsWrapperViewStyle.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Configuration/SubscriptionsWrapperViewStyleConfiguration.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/ISubscriptionsWrapperViewStyle.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Automatic/AutomaticSubscriptionsWrapperViewStyle.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperView.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Compact/CompactSubscriptionWrapperViewStyle.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperView.swift",
"Classes/Presentation/Views/SubscriptionsView/Styles/SubscriptionsWrapperViewStyle/Styles/Full/FullSubscriptionsWrapperViewStyle.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsAssembly.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsPresenter.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsView.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsViewModel.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsViewModelViewFactory.swift",
"Classes/Presentation/Views/SubscriptionsView/SubscriptionsWrapperView.swift",
"Classes/Presentation/Views/SubscriptionsView/Views/LoadingView.swift",
"Classes/Presentation/Views/SubscriptionsView/Views/SubscriptionHeaderView.swift",
"Classes/Presentation/Views/SubscriptionsView/Views/SubscriptionToolbarView.swift",
"Classes/Presentation/Views/SubscriptionsView/Views/SubscriptionView.swift"
],
"target_dependencies" : [
"Flare"
],
"type" : "library"
},
{
"c99name" : "FlareTests",
"module_type" : "SwiftTarget",
"name" : "FlareTests",
"path" : "Tests/FlareTests",
"product_dependencies" : [
"TestConcurrency"
],
"sources" : [
"UnitTests/Factories/ReceiptRefreshFactoryTests.swift",
"UnitTests/FlareTests.swift",
"UnitTests/Helpers/ProcessInfoTests.swift",
"UnitTests/Models/IAPErrorTests.swift",
"UnitTests/Models/PaymentTransactionTests.swift",
"UnitTests/Models/PromotionalOfferTests.swift",
"UnitTests/Models/SKProductTests.swift",
"UnitTests/Providers/CachingProductsProviderDecoratorTests.swift",
"UnitTests/Providers/ConfigurationProviderTests.swift",
"UnitTests/Providers/IAPProviderTests.swift",
"UnitTests/Providers/PaymentProviderTests.swift",
"UnitTests/Providers/ProductProviderTests.swift",
"UnitTests/Providers/PurchaseProviderTests.swift",
"UnitTests/Providers/ReceiptRefreshProviderTests.swift",
"UnitTests/Providers/RefundProviderTests.swift",
"UnitTests/Providers/RefundRequestProviderTests.swift",
"UnitTests/Providers/SortingProductsProviderDecoratorTests.swift",
"UnitTests/Providers/SystemInfoProviderTests.swift",
"UnitTests/TestHelpers/Extensions/Result+.swift",
"UnitTests/TestHelpers/Extensions/String+Data.swift",
"UnitTests/TestHelpers/Extensions/XCTestCase+.swift",
"UnitTests/TestHelpers/Fakes/Configuration+Fake.swift",
"UnitTests/TestHelpers/Fakes/SKProduct+Fake.swift",
"UnitTests/TestHelpers/Fakes/StoreTransactionFake.swift",
"UnitTests/TestHelpers/Helpers/AvailabilityChecker.swift",
"UnitTests/TestHelpers/Helpers/PurchaseManagerTestHelper.swift",
"UnitTests/TestHelpers/Helpers/WindowSceneFactory.swift",
"UnitTests/TestHelpers/Mocks/AppStoreReceiptProviderMock.swift",
"UnitTests/TestHelpers/Mocks/CacheProviderMock.swift",
"UnitTests/TestHelpers/Mocks/CacheProviderTests.swift",
"UnitTests/TestHelpers/Mocks/ConfigurationProviderMock.swift",
"UnitTests/TestHelpers/Mocks/EligibilityProviderMock.swift",
"UnitTests/TestHelpers/Mocks/FileManagerMock.swift",
"UnitTests/TestHelpers/Mocks/FlareDependenciesMock.swift",
"UnitTests/TestHelpers/Mocks/IAPProviderMock.swift",
"UnitTests/TestHelpers/Mocks/PaymentProviderMock.swift",
"UnitTests/TestHelpers/Mocks/PaymentQueueMock.swift",
"UnitTests/TestHelpers/Mocks/ProductProviderMock.swift",
"UnitTests/TestHelpers/Mocks/ProductResponseMock.swift",
"UnitTests/TestHelpers/Mocks/ProductsRequestMock.swift",
"UnitTests/TestHelpers/Mocks/PurchaseProviderMock.swift",
"UnitTests/TestHelpers/Mocks/ReceiptRefreshProviderMock.swift",
"UnitTests/TestHelpers/Mocks/ReceiptRefreshRequestFactory.swift",
"UnitTests/TestHelpers/Mocks/ReceiptRefreshRequestMock.swift",
"UnitTests/TestHelpers/Mocks/RedeemCodeProvider.swift",
"UnitTests/TestHelpers/Mocks/RefundProviderMock.swift",
"UnitTests/TestHelpers/Mocks/RefundRequestProviderMock.swift",
"UnitTests/TestHelpers/Mocks/SKProductMock.swift",
"UnitTests/TestHelpers/Mocks/ScenesHolderMock.swift",
"UnitTests/TestHelpers/Mocks/StoreTransactionMock.swift",
"UnitTests/TestHelpers/Mocks/SystemInfoProviderMock.swift",
"UnitTests/TestHelpers/Mocks/UserDefaultsMock.swift",
"UnitTests/TestHelpers/Stubs/StoreTransactionStub.swift"
],
"target_dependencies" : [
"Flare",
"FlareMock"
],
"type" : "test"
},
{
"c99name" : "FlareMock",
"module_type" : "SwiftTarget",
"name" : "FlareMock",
"path" : "Sources/FlareMock",
"sources" : [
"Fakes/StoreProduct+Fake.swift",
"Fakes/StoreTransaction+Fake.swift",
"Mocks/PaymentTransactionMock.swift",
"Mocks/ProductMock.swift"
],
"target_dependencies" : [
"Flare"
],
"type" : "library"
},
{
"c99name" : "Flare",
"module_type" : "SwiftTarget",
"name" : "Flare",
"path" : "Sources/Flare",
"product_dependencies" : [
"Atomic",
"Concurrency",
"Log"
],
"product_memberships" : [
"Flare",
"FlareUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Flare/Resources/Localizable.strings",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Classes/Common/Logger.swift",
"Classes/Common/Types.swift",
"Classes/DI/FlareDependencies.swift",
"Classes/DI/IFlareDependencies.swift",
"Classes/Extensions/Bundle+IAppStoreReceiptProvider.swift",
"Classes/Extensions/FileManager+IFileManager.swift",
"Classes/Extensions/Formatters/NumberFormatter+.swift",
"Classes/Extensions/Locale/Locale+CurrencyCode.swift",
"Classes/Extensions/Product.SubscriptionInfo.Status+ISubscriptionInfoStatus.swift",
"Classes/Extensions/ProductType+.swift",
"Classes/Extensions/SKProduct+.swift",
"Classes/Extensions/SKRequest+IReceiptRefreshRequest.swift",
"Classes/Extensions/SKRequest+Identifier.swift",
"Classes/Flare.swift",
"Classes/Foundation/UserDefaults/IUserDefaults.swift",
"Classes/Foundation/UserDefaults/UserDefaults.swift",
"Classes/Generated/Strings.swift",
"Classes/Helpers/Async/AsyncHandler.swift",
"Classes/Helpers/AsyncSequence/AsyncSequence+Stream.swift",
"Classes/Helpers/FileManager/IFileManager.swift",
"Classes/Helpers/PaymentQueue/PaymentQueue.swift",
"Classes/Helpers/PaymentQueue/SKPaymentQueue+PaymentQueue.swift",
"Classes/Helpers/PaymentTransaction/PaymentTransaction.swift",
"Classes/Helpers/ProcessInfo/ProcessInfo+.swift",
"Classes/Helpers/ScenesHolder/IScenesHolder.swift",
"Classes/IFlare.swift",
"Classes/Listeners/TransactionListener/ITransactionListener.swift",
"Classes/Listeners/TransactionListener/TransactionListener.swift",
"Classes/Listeners/TransactionListener/TransactionListenerDelegate.swift",
"Classes/Models/Configuration.swift",
"Classes/Models/DiscountType.swift",
"Classes/Models/ExpirationReason.swift",
"Classes/Models/FetchCachePolicy.swift",
"Classes/Models/IAPError.swift",
"Classes/Models/Internal/ProductsRequest.swift",
"Classes/Models/Internal/Protocols/IRenewalInfo.swift",
"Classes/Models/Internal/Protocols/ISKProduct.swift",
"Classes/Models/Internal/Protocols/ISKRequest.swift",
"Classes/Models/Internal/Protocols/IStoreProductDiscount.swift",
"Classes/Models/Internal/Protocols/IStoreTransaction.swift",
"Classes/Models/Internal/Protocols/ISubscriptionInfo.swift",
"Classes/Models/Internal/Protocols/ISubscriptionInfoStatus.swift",
"Classes/Models/Internal/SK1StoreProduct.swift",
"Classes/Models/Internal/SK1StoreProductDiscount.swift",
"Classes/Models/Internal/SK1StoreTransaction.swift",
"Classes/Models/Internal/SK2RenewalInfo.swift",
"Classes/Models/Internal/SK2StoreProduct.swift",
"Classes/Models/Internal/SK2StoreProductDiscount.swift",
"Classes/Models/Internal/SK2StoreTransaction.swift",
"Classes/Models/Internal/SK2SubscriptionInfo.swift",
"Classes/Models/Internal/SK2SubscriptionInfoStatus.swift",
"Classes/Models/Internal/StoreEnvironment.swift",
"Classes/Models/PaymentMode.swift",
"Classes/Models/PriceIncreaseStatus.swift",
"Classes/Models/ProductCategory.swift",
"Classes/Models/ProductType.swift",
"Classes/Models/PromotionalOffer.swift",
"Classes/Models/RefundError.swift",
"Classes/Models/RefundRequestStatus.swift",
"Classes/Models/RenewalInfo.swift",
"Classes/Models/RenewalState.swift",
"Classes/Models/StoreProduct.swift",
"Classes/Models/StoreProductDiscount.swift",
"Classes/Models/StoreTransaction.swift",
"Classes/Models/SubscriptionEligibility.swift",
"Classes/Models/SubscriptionInfo.swift",
"Classes/Models/SubscriptionInfoStatus.swift",
"Classes/Models/SubscriptionPeriod.swift",
"Classes/Models/VerificationError.swift",
"Classes/Models/VerificationResult.swift",
"Classes/Providers/AppStoreReceiptProvider/IAppStoreReceiptProvider.swift",
"Classes/Providers/CacheProvider/CacheProvider.swift",
"Classes/Providers/CacheProvider/ICacheProvider.swift",
"Classes/Providers/ConfigurationProvider/ConfigurationProvider.swift",
"Classes/Providers/ConfigurationProvider/IConfigurationProvider.swift",
"Classes/Providers/EligibilityProvider/EligibilityProvider.swift",
"Classes/Providers/EligibilityProvider/IEligibilityProvider.swift",
"Classes/Providers/IAPProvider/IAPProvider.swift",
"Classes/Providers/IAPProvider/IIAPProvider.swift",
"Classes/Providers/PaymentProvider/IPaymentProvider.swift",
"Classes/Providers/PaymentProvider/PaymentProvider.swift",
"Classes/Providers/ProductProvider/Decorators/CachingProductsProviderDecorator/CachingProductsProviderDecorator.swift",
"Classes/Providers/ProductProvider/Decorators/CachingProductsProviderDecorator/ICachingProductsProviderDecorator.swift",
"Classes/Providers/ProductProvider/Decorators/SortingProductsProviderDecorator/ISortingProductsProviderDecorator.swift",
"Classes/Providers/ProductProvider/Decorators/SortingProductsProviderDecorator/SortingProductsProviderDecorator.swift",
"Classes/Providers/ProductProvider/IProductProvider.swift",
"Classes/Providers/ProductProvider/ProductProvider.swift",
"Classes/Providers/PurchaseProvider/IPurchaseProvider.swift",
"Classes/Providers/PurchaseProvider/PurchaseProvider.swift",
"Classes/Providers/ReceiptRefreshProvider/Factories/IReceiptRefreshRequest.swift",
"Classes/Providers/ReceiptRefreshProvider/Factories/ReceiptRefreshRequestFactory/IReceiptRefreshRequestFactory.swift",
"Classes/Providers/ReceiptRefreshProvider/Factories/ReceiptRefreshRequestFactory/ReceiptRefreshRequestFactory.swift",
"Classes/Providers/ReceiptRefreshProvider/IReceiptRefreshProvider.swift",
"Classes/Providers/ReceiptRefreshProvider/ReceiptRefreshProvider.swift",
"Classes/Providers/RedeemCodeProvider/IRedeemCodeProvider.swift",
"Classes/Providers/RedeemCodeProvider/RedeemCodeProvider.swift",
"Classes/Providers/RefundProvider/IRefundProvider.swift",
"Classes/Providers/RefundProvider/RefundProvider.swift",
"Classes/Providers/RefundRequestProvider/IRefundRequestProvider.swift",
"Classes/Providers/RefundRequestProvider/RefundRequestProvider.swift",
"Classes/Providers/SystemInfoProvider/ISystemInfoProvider.swift",
"Classes/Providers/SystemInfoProvider/SystemInfoProvider.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.