Build Information
Successful build of RevenueCat, reference main (027a64
), with Swift 6.1 for macOS (SPM) on 6 May 2025 02:10:48 UTC.
Swift 6 data race errors: 131
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
| |- 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
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: 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 instance method 'adaptTemplateView(with:)' risks causing data races between main actor-isolated and task-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| |- warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'some View' to main actor-isolated instance method 'adaptTemplateView(with:)' risks causing races in between task-isolated and main actor-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
[954/957] Compiling RevenueCatUI CarouselComponentViewModel.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:79:23: warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | ) -> PaywallPurchasesType {
78 | return MockPurchases { package in
79 | try await purchase(self.purchase(package:))(package)
| |- warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:81:23: warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
79 | try await purchase(self.purchase(package:))(package)
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
| |- warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
82 | } trackEvent: { event in
83 | await self.track(paywallEvent: event)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:98:19: warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
96 | try await self.restorePurchases()
97 | } trackEvent: { event in
98 | await trackEvent(self.track(paywallEvent:))(event)
| |- warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
99 | } customerInfo: {
100 | try await self.customerInfo()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:431:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
429 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
430 |
431 | static var defaultValue: Package?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
432 |
433 | static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:442:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
440 | struct RestoreInProgressPreferenceKey: PreferenceKey {
441 |
442 | static var defaultValue: Bool = false
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
443 |
444 | static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:470:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
468 | }
469 |
470 | static var defaultValue: PurchaseResult?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
471 |
472 | static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:481:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
479 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
480 |
481 | static var defaultValue: CustomerInfo?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
482 |
483 | static func reduce(value: inout CustomerInfo?, nextValue: () -> CustomerInfo?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:492:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
490 | struct PurchaseErrorPreferenceKey: PreferenceKey {
491 |
492 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
493 |
494 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:503:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
501 | struct RestoreErrorPreferenceKey: PreferenceKey {
502 |
503 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
504 |
505 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:515:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
513 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
514 | struct RequestedDismissalKey: EnvironmentKey {
515 | static let defaultValue: (() -> Void)? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
516 | }
517 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| `- warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
:
144 | extension View {
145 |
146 | func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
| `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
147 | self
148 | .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:77:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
75 | .adaptTemplateView(with: configuration)
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
| `- warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Data/TemplateViewConfiguration.swift:21:8: note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
19 | /// The processed data necessary to render a `TemplateViewType`.
20 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
21 | struct TemplateViewConfiguration {
| `- note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
22 |
23 | let mode: PaywallViewMode
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:81:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
79 |
80 | case let .failure(error):
81 | DebugErrorView(error, releaseBehavior: .emptyView)
| `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
82 | }
83 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:97:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
95 | extension DebugErrorView where Content == AnyView {
96 |
97 | init(_ error: Error, releaseBehavior: ReleaseBehavior) {
| |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
98 | self.init(
99 | (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
124 | switch template {
125 | case .template1:
126 | Template1View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template1View.swift:38:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
36 | private var purchaseHandler: PurchaseHandler
37 |
38 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
39 | self.configuration = configuration
40 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
41 | private var purchaseHandler: PurchaseHandler
42 |
43 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
44 | self._selectedPackage = .init(initialValue: configuration.packages.default)
45 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template3View.swift:41:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
39 | private var namespace
40 |
41 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
42 | self.configuration = configuration
43 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
47 | private var purchaseHandler: PurchaseHandler
48 |
49 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
50 | self.configuration = configuration
51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
46 | private var purchaseHandler: PurchaseHandler
47 |
48 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
49 | self._selectedPackage = .init(initialValue: configuration.packages.default)
50 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
62 | }
63 |
64 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
65 | guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
66 | fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:243:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
241 | switch self.purchases.purchasesAreCompletedBy {
242 | case .revenueCat:
243 | return try await performRestorePurchases()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performRestorePurchases()' risks causing data races between main actor-isolated and task-isolated uses
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:245:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
243 | return try await performRestorePurchases()
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performExternalRestoreLogic()' risks causing data races between main actor-isolated and task-isolated uses
246 | }
247 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
124 | switch template {
125 | case .template1:
126 | Template1View(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
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(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
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(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
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(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
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(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
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(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
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: 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 instance method 'adaptTemplateView(with:)' risks causing data races between main actor-isolated and task-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| |- warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'some View' to main actor-isolated instance method 'adaptTemplateView(with:)' risks causing races in between task-isolated and main actor-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
[955/957] Compiling RevenueCatUI ComponentsView.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:79:23: warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | ) -> PaywallPurchasesType {
78 | return MockPurchases { package in
79 | try await purchase(self.purchase(package:))(package)
| |- warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:81:23: warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
79 | try await purchase(self.purchase(package:))(package)
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
| |- warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
82 | } trackEvent: { event in
83 | await self.track(paywallEvent: event)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:98:19: warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
96 | try await self.restorePurchases()
97 | } trackEvent: { event in
98 | await trackEvent(self.track(paywallEvent:))(event)
| |- warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
99 | } customerInfo: {
100 | try await self.customerInfo()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:431:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
429 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
430 |
431 | static var defaultValue: Package?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
432 |
433 | static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:442:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
440 | struct RestoreInProgressPreferenceKey: PreferenceKey {
441 |
442 | static var defaultValue: Bool = false
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
443 |
444 | static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:470:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
468 | }
469 |
470 | static var defaultValue: PurchaseResult?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
471 |
472 | static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:481:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
479 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
480 |
481 | static var defaultValue: CustomerInfo?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
482 |
483 | static func reduce(value: inout CustomerInfo?, nextValue: () -> CustomerInfo?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:492:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
490 | struct PurchaseErrorPreferenceKey: PreferenceKey {
491 |
492 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
493 |
494 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:503:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
501 | struct RestoreErrorPreferenceKey: PreferenceKey {
502 |
503 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
504 |
505 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:515:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
513 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
514 | struct RequestedDismissalKey: EnvironmentKey {
515 | static let defaultValue: (() -> Void)? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
516 | }
517 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| `- warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
:
144 | extension View {
145 |
146 | func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
| `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
147 | self
148 | .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:77:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
75 | .adaptTemplateView(with: configuration)
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
| `- warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Data/TemplateViewConfiguration.swift:21:8: note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
19 | /// The processed data necessary to render a `TemplateViewType`.
20 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
21 | struct TemplateViewConfiguration {
| `- note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
22 |
23 | let mode: PaywallViewMode
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:81:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
79 |
80 | case let .failure(error):
81 | DebugErrorView(error, releaseBehavior: .emptyView)
| `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
82 | }
83 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:97:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
95 | extension DebugErrorView where Content == AnyView {
96 |
97 | init(_ error: Error, releaseBehavior: ReleaseBehavior) {
| |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
98 | self.init(
99 | (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
124 | switch template {
125 | case .template1:
126 | Template1View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template1View.swift:38:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
36 | private var purchaseHandler: PurchaseHandler
37 |
38 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
39 | self.configuration = configuration
40 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
41 | private var purchaseHandler: PurchaseHandler
42 |
43 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
44 | self._selectedPackage = .init(initialValue: configuration.packages.default)
45 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template3View.swift:41:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
39 | private var namespace
40 |
41 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
42 | self.configuration = configuration
43 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
47 | private var purchaseHandler: PurchaseHandler
48 |
49 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
50 | self.configuration = configuration
51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
46 | private var purchaseHandler: PurchaseHandler
47 |
48 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
49 | self._selectedPackage = .init(initialValue: configuration.packages.default)
50 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
62 | }
63 |
64 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
65 | guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
66 | fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:243:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
241 | switch self.purchases.purchasesAreCompletedBy {
242 | case .revenueCat:
243 | return try await performRestorePurchases()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performRestorePurchases()' risks causing data races between main actor-isolated and task-isolated uses
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:245:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
243 | return try await performRestorePurchases()
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performExternalRestoreLogic()' risks causing data races between main actor-isolated and task-isolated uses
246 | }
247 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
124 | switch template {
125 | case .template1:
126 | Template1View(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
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(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
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(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
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(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
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(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
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(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
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: 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 instance method 'adaptTemplateView(with:)' risks causing data races between main actor-isolated and task-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| |- warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'some View' to main actor-isolated instance method 'adaptTemplateView(with:)' risks causing races in between task-isolated and main actor-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
[956/957] Compiling RevenueCatUI IconComponentView.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:79:23: warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | ) -> PaywallPurchasesType {
78 | return MockPurchases { package in
79 | try await purchase(self.purchase(package:))(package)
| |- warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:81:23: warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
79 | try await purchase(self.purchase(package:))(package)
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
| |- warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
82 | } trackEvent: { event in
83 | await self.track(paywallEvent: event)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:98:19: warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
96 | try await self.restorePurchases()
97 | } trackEvent: { event in
98 | await trackEvent(self.track(paywallEvent:))(event)
| |- warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
99 | } customerInfo: {
100 | try await self.customerInfo()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:431:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
429 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
430 |
431 | static var defaultValue: Package?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
432 |
433 | static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:442:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
440 | struct RestoreInProgressPreferenceKey: PreferenceKey {
441 |
442 | static var defaultValue: Bool = false
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
443 |
444 | static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:470:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
468 | }
469 |
470 | static var defaultValue: PurchaseResult?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
471 |
472 | static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:481:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
479 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
480 |
481 | static var defaultValue: CustomerInfo?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
482 |
483 | static func reduce(value: inout CustomerInfo?, nextValue: () -> CustomerInfo?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:492:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
490 | struct PurchaseErrorPreferenceKey: PreferenceKey {
491 |
492 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
493 |
494 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:503:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
501 | struct RestoreErrorPreferenceKey: PreferenceKey {
502 |
503 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
504 |
505 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:515:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
513 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
514 | struct RequestedDismissalKey: EnvironmentKey {
515 | static let defaultValue: (() -> Void)? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
516 | }
517 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| `- warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
:
144 | extension View {
145 |
146 | func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
| `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
147 | self
148 | .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:77:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
75 | .adaptTemplateView(with: configuration)
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
| `- warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Data/TemplateViewConfiguration.swift:21:8: note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
19 | /// The processed data necessary to render a `TemplateViewType`.
20 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
21 | struct TemplateViewConfiguration {
| `- note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
22 |
23 | let mode: PaywallViewMode
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:81:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
79 |
80 | case let .failure(error):
81 | DebugErrorView(error, releaseBehavior: .emptyView)
| `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
82 | }
83 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:97:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
95 | extension DebugErrorView where Content == AnyView {
96 |
97 | init(_ error: Error, releaseBehavior: ReleaseBehavior) {
| |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
98 | self.init(
99 | (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
124 | switch template {
125 | case .template1:
126 | Template1View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template1View.swift:38:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
36 | private var purchaseHandler: PurchaseHandler
37 |
38 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
39 | self.configuration = configuration
40 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
41 | private var purchaseHandler: PurchaseHandler
42 |
43 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
44 | self._selectedPackage = .init(initialValue: configuration.packages.default)
45 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template3View.swift:41:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
39 | private var namespace
40 |
41 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
42 | self.configuration = configuration
43 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
47 | private var purchaseHandler: PurchaseHandler
48 |
49 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
50 | self.configuration = configuration
51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
46 | private var purchaseHandler: PurchaseHandler
47 |
48 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
49 | self._selectedPackage = .init(initialValue: configuration.packages.default)
50 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
62 | }
63 |
64 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
65 | guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
66 | fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:243:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
241 | switch self.purchases.purchasesAreCompletedBy {
242 | case .revenueCat:
243 | return try await performRestorePurchases()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performRestorePurchases()' risks causing data races between main actor-isolated and task-isolated uses
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:245:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
243 | return try await performRestorePurchases()
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performExternalRestoreLogic()' risks causing data races between main actor-isolated and task-isolated uses
246 | }
247 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
124 | switch template {
125 | case .template1:
126 | Template1View(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
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(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
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(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
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(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
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(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
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(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
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: 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 instance method 'adaptTemplateView(with:)' risks causing data races between main actor-isolated and task-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| |- warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'some View' to main actor-isolated instance method 'adaptTemplateView(with:)' risks causing races in between task-isolated and main actor-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
[957/957] Compiling RevenueCatUI IconComponentViewModel.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:79:23: warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | ) -> PaywallPurchasesType {
78 | return MockPurchases { package in
79 | try await purchase(self.purchase(package:))(package)
| |- warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:81:23: warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
79 | try await purchase(self.purchase(package:))(package)
80 | } restorePurchases: {
81 | try await restore(self.restorePurchases)()
| |- warning: capture of 'restore' with non-sendable type '(@escaping MockPurchases.RestoreBlock) -> MockPurchases.RestoreBlock' (aka '(@escaping @Sendable () async throws -> CustomerInfo) -> @Sendable () async throws -> CustomerInfo') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
82 | } trackEvent: { event in
83 | await self.track(paywallEvent: event)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:98:19: warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
96 | try await self.restorePurchases()
97 | } trackEvent: { event in
98 | await trackEvent(self.track(paywallEvent:))(event)
| |- warning: capture of 'trackEvent' with non-sendable type '(@escaping MockPurchases.TrackEventBlock) -> MockPurchases.TrackEventBlock' (aka '(@escaping @Sendable (PaywallEvent) async -> ()) -> @Sendable (PaywallEvent) async -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
99 | } customerInfo: {
100 | try await self.customerInfo()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:431:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
429 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
430 |
431 | static var defaultValue: Package?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
432 |
433 | static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:442:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
440 | struct RestoreInProgressPreferenceKey: PreferenceKey {
441 |
442 | static var defaultValue: Bool = false
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
443 |
444 | static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:470:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
468 | }
469 |
470 | static var defaultValue: PurchaseResult?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
471 |
472 | static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:481:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
479 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
480 |
481 | static var defaultValue: CustomerInfo?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
482 |
483 | static func reduce(value: inout CustomerInfo?, nextValue: () -> CustomerInfo?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:492:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
490 | struct PurchaseErrorPreferenceKey: PreferenceKey {
491 |
492 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
493 |
494 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:503:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
501 | struct RestoreErrorPreferenceKey: PreferenceKey {
502 |
503 | static var defaultValue: NSError?
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
504 |
505 | static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:515:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
513 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
514 | struct RequestedDismissalKey: EnvironmentKey {
515 | static let defaultValue: (() -> Void)? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type '(() -> Void)?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
516 | }
517 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| `- warning: call to main actor-isolated instance method 'adaptTemplateView(with:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
:
144 | extension View {
145 |
146 | func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
| `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
147 | self
148 | .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:77:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
75 | .adaptTemplateView(with: configuration)
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
| `- warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Data/TemplateViewConfiguration.swift:21:8: note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
19 | /// The processed data necessary to render a `TemplateViewType`.
20 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
21 | struct TemplateViewConfiguration {
| `- note: consider making struct 'TemplateViewConfiguration' conform to the 'Sendable' protocol
22 |
23 | let mode: PaywallViewMode
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:81:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | @ViewBuilder
68 | func createView(for offering: Offering,
| `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
69 | template: PaywallTemplate,
70 | configuration: Result<TemplateViewConfiguration, Error>,
:
79 |
80 | case let .failure(error):
81 | DebugErrorView(error, releaseBehavior: .emptyView)
| `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
82 | }
83 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:97:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
95 | extension DebugErrorView where Content == AnyView {
96 |
97 | init(_ error: Error, releaseBehavior: ReleaseBehavior) {
| |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
98 | self.init(
99 | (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
124 | switch template {
125 | case .template1:
126 | Template1View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template1View.swift:38:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
36 | private var purchaseHandler: PurchaseHandler
37 |
38 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
39 | self.configuration = configuration
40 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
41 | private var purchaseHandler: PurchaseHandler
42 |
43 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
44 | self._selectedPackage = .init(initialValue: configuration.packages.default)
45 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template3View.swift:41:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
39 | private var namespace
40 |
41 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
42 | self.configuration = configuration
43 | self.localization = configuration.packages.single.localization
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
47 | private var purchaseHandler: PurchaseHandler
48 |
49 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
50 | self.configuration = configuration
51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
46 | private var purchaseHandler: PurchaseHandler
47 |
48 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
49 | self._selectedPackage = .init(initialValue: configuration.packages.default)
50 | self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 |
118 | @ViewBuilder
119 | private static func createView(template: PaywallTemplate,
| `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
120 | configuration: TemplateViewConfiguration) -> some View {
121 | #if os(watchOS)
:
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(configuration)
| `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
62 | }
63 |
64 | init(_ configuration: TemplateViewConfiguration) {
| |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
65 | guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
66 | fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:243:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
241 | switch self.purchases.purchasesAreCompletedBy {
242 | case .revenueCat:
243 | return try await performRestorePurchases()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performRestorePurchases()' risks causing data races between main actor-isolated and task-isolated uses
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:245:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
243 | return try await performRestorePurchases()
244 | case .myApp:
245 | return try await performExternalRestoreLogic()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'performExternalRestoreLogic()' risks causing data races between main actor-isolated and task-isolated uses
246 | }
247 | }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:126:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
124 | switch template {
125 | case .template1:
126 | Template1View(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
127 | case .template2:
128 | Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:128:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
126 | Template1View(configuration)
127 | case .template2:
128 | Template2View(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
129 | case .template3:
130 | Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:130:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
128 | Template2View(configuration)
129 | case .template3:
130 | Template3View(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
131 | case .template4:
132 | Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:132:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
130 | Template3View(configuration)
131 | case .template4:
132 | Template4View(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
133 | case .template5:
134 | Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:134:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
132 | Template4View(configuration)
133 | case .template5:
134 | Template5View(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
135 | case .template7:
136 | Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:136:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
134 | Template5View(configuration)
135 | case .template7:
136 | Template7View(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
137 | }
138 | #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: 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 instance method 'adaptTemplateView(with:)' risks causing data races between main actor-isolated and task-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:75:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
73 | case let .success(configuration):
74 | Self.createView(template: template, configuration: configuration)
75 | .adaptTemplateView(with: configuration)
| |- warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'some View' to main actor-isolated instance method 'adaptTemplateView(with:)' risks causing races in between task-isolated and main actor-isolated uses
76 | .task(id: offering) {
77 | await introEligibility.computeEligibility(for: configuration.packages)
Build complete! (30.79s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/Templates/__Snapshots__': File not found.
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/RevenueCatUIDev.xctestplan
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "nimble",
"requirement" : {
"revision" : [
"1f3bde57bde12f5e7b07909848c071e9b73d6edc"
]
},
"type" : "sourceControl",
"url" : "https://github.com/quick/nimble"
},
{
"identity" : "swift-snapshot-testing",
"requirement" : {
"revision" : [
"26ed3a2b4a2df47917ca9b790a57f91285b923fb"
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-snapshot-testing"
}
],
"manifest_display_name" : "RevenueCat",
"name" : "RevenueCat",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "watchos",
"version" : "6.2"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "RevenueCat",
"targets" : [
"RevenueCat"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "RevenueCat_CustomEntitlementComputation",
"targets" : [
"RevenueCat_CustomEntitlementComputation"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ReceiptParser",
"targets" : [
"ReceiptParser"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "RevenueCatUI",
"targets" : [
"RevenueCatUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "RevenueCat_CustomEntitlementComputation",
"module_type" : "SwiftTarget",
"name" : "RevenueCat_CustomEntitlementComputation",
"path" : "CustomEntitlementComputation",
"product_memberships" : [
"RevenueCat_CustomEntitlementComputation"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/CustomEntitlementComputation/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"Attribution/ASIdManagerProxy.swift",
"Attribution/AttributionData.swift",
"Attribution/AttributionFetcher.swift",
"Attribution/AttributionNetwork.swift",
"Attribution/AttributionPoster.swift",
"Attribution/AttributionTypeFactory.swift",
"Attribution/TrackingManagerProxy.swift",
"Caching/CacheStatus.swift",
"Caching/DeviceCache.swift",
"Caching/InMemoryCachedObject.swift",
"CodableExtensions/PeriodType+Extensions.swift",
"CodableExtensions/PurchaseOwnershipType+Extensions.swift",
"CodableExtensions/Store+Extensions.swift",
"CustomerCenter/CustomerCenterConfigData.swift",
"CustomerCenter/CustomerCenterPresentationMode.swift",
"CustomerCenter/Events/CustomerCenterEvent.swift",
"CustomerCenter/Events/EventsRequest+CustomerCenter.swift",
"DeepLink/DeepLinkParser.swift",
"Diagnostics/DiagnosticsEvent.swift",
"Diagnostics/DiagnosticsFileHandler.swift",
"Diagnostics/DiagnosticsTracker.swift",
"Diagnostics/FileHandler.swift",
"Diagnostics/Networking/DiagnosticsEventsRequest.swift",
"Diagnostics/Networking/DiagnosticsHTTPRequestPath.swift",
"Diagnostics/Networking/DiagnosticsPostOperation.swift",
"Diagnostics/Networking/DiagnosticsSynchronizer.swift",
"DocCDocumentation/EmptyFile.swift",
"Error Handling/Assertions.swift",
"Error Handling/BackendError.swift",
"Error Handling/BackendErrorCode.swift",
"Error Handling/DescribableError.swift",
"Error Handling/ErrorCode.swift",
"Error Handling/ErrorDetails.swift",
"Error Handling/ErrorUtils.swift",
"Error Handling/PurchasesError.swift",
"Error Handling/SKError+Extensions.swift",
"Error Handling/StoreKitError+Extensions.swift",
"Error Handling/StoreKitErrorHelper.swift",
"Events/FeatureEvent.swift",
"Events/Networking/EventsRequest.swift",
"Events/StoredEvent.swift",
"Events/StoredEventSerializer.swift",
"FoundationExtensions/Array+Extensions.swift",
"FoundationExtensions/AsyncExtensions.swift",
"FoundationExtensions/Data+Extensions.swift",
"FoundationExtensions/Date+Extensions.swift",
"FoundationExtensions/Decoder+Extensions.swift",
"FoundationExtensions/Dictionary+Extensions.swift",
"FoundationExtensions/DispatchTimeInterval+Extensions.swift",
"FoundationExtensions/Error+Extensions.swift",
"FoundationExtensions/Integer+Extensions.swift",
"FoundationExtensions/Locale+Extensions.swift",
"FoundationExtensions/OperationQueue+Extensions.swift",
"FoundationExtensions/Operators+Extensions.swift",
"FoundationExtensions/Optional+Extensions.swift",
"FoundationExtensions/Result+Extensions.swift",
"FoundationExtensions/Set+Extensions.swift",
"FoundationExtensions/String+Extensions.swift",
"FoundationExtensions/TimeInterval+Extensions.swift",
"FoundationExtensions/UIApplication+RCExtensions.swift",
"FoundationExtensions/UserDefaults+Extensions.swift",
"Identity/CustomerInfo+ActiveDates.swift",
"Identity/CustomerInfo+NonSubscriptions.swift",
"Identity/CustomerInfo.swift",
"Identity/CustomerInfoManager.swift",
"Identity/IdentityManager.swift",
"Identity/ProductPaidPrice.swift",
"Identity/SubscriptionInfo.swift",
"LocalReceiptParsing/BasicTypes/ASN1Container.swift",
"LocalReceiptParsing/BasicTypes/ASN1ObjectIdentifier.swift",
"LocalReceiptParsing/BasicTypes/AppleReceipt.swift",
"LocalReceiptParsing/BasicTypes/InAppPurchase.swift",
"LocalReceiptParsing/Builders/ASN1ContainerBuilder.swift",
"LocalReceiptParsing/Builders/ASN1ObjectIdentifierBuilder.swift",
"LocalReceiptParsing/Builders/AppleReceiptBuilder.swift",
"LocalReceiptParsing/Builders/InAppPurchaseBuilder.swift",
"LocalReceiptParsing/DataConverters/ArraySlice_UInt8+Extensions.swift",
"LocalReceiptParsing/DataConverters/Codable+Extensions.swift",
"LocalReceiptParsing/DataConverters/DateFormatter+Extensions.swift",
"LocalReceiptParsing/DataConverters/UInt8+Extensions.swift",
"LocalReceiptParsing/Helpers/FileReader.swift",
"LocalReceiptParsing/Helpers/LoggerType.swift",
"LocalReceiptParsing/Helpers/ProcessInfo+Extensions.swift",
"LocalReceiptParsing/Helpers/ReceiptParserLogger.swift",
"LocalReceiptParsing/Helpers/ReceiptStrings.swift",
"LocalReceiptParsing/LocalReceiptFetcher.swift",
"LocalReceiptParsing/PurchasesReceiptParser.swift",
"LocalReceiptParsing/ReceiptParsingError.swift",
"Logging/LogIntent.swift",
"Logging/Logger.swift",
"Logging/Strings/AnalyticsStrings.swift",
"Logging/Strings/AttributionStrings.swift",
"Logging/Strings/BackendErrorStrings.swift",
"Logging/Strings/CodableStrings.swift",
"Logging/Strings/ConfigureStrings.swift",
"Logging/Strings/CustomerInfoStrings.swift",
"Logging/Strings/DiagnosticsStrings.swift",
"Logging/Strings/ETagStrings.swift",
"Logging/Strings/EligibilityStrings.swift",
"Logging/Strings/IdentityStrings.swift",
"Logging/Strings/ManageSubscriptionsStrings.swift",
"Logging/Strings/NetworkStrings.swift",
"Logging/Strings/OfferingStrings.swift",
"Logging/Strings/OfflineEntitlementsStrings.swift",
"Logging/Strings/PaywallsStrings.swift",
"Logging/Strings/PurchaseStrings.swift",
"Logging/Strings/SigningStrings.swift",
"Logging/Strings/StoreKitStrings.swift",
"Logging/Strings/Strings.swift",
"Logging/Strings/WebRedemptionStrings.swift",
"Misc/Box.swift",
"Misc/Codable/AnyDecodable.swift",
"Misc/Codable/AnyEncodable.swift",
"Misc/Codable/DefaultDecodable.swift",
"Misc/Codable/EnsureNonEmptyCollectionDecodable.swift",
"Misc/Codable/IgnoreHashable.swift",
"Misc/Codable/NonEmptyStringDecodable.swift",
"Misc/Codable/RawDataContainer.swift",
"Misc/Concurrency/Atomic.swift",
"Misc/Concurrency/Lock.swift",
"Misc/Concurrency/OperationDispatcher.swift",
"Misc/Concurrency/Purchases+async.swift",
"Misc/Concurrency/Purchases+nonasync.swift",
"Misc/Concurrency/SynchronizedUserDefaults.swift",
"Misc/DangerousSettings.swift",
"Misc/DateAndTime/Clock.swift",
"Misc/DateAndTime/DateExtensions.swift",
"Misc/DateAndTime/DateProvider.swift",
"Misc/DateAndTime/ISODurationFormatter.swift",
"Misc/DateAndTime/ISOPeriodFormatter.swift",
"Misc/DateAndTime/TimingUtil.swift",
"Misc/Deprecations.swift",
"Misc/Either.swift",
"Misc/Locale/PreferredLocalesProvider.swift",
"Misc/MacDevice.swift",
"Misc/MapAppStoreDetector.swift",
"Misc/Obsoletions.swift",
"Misc/PlatformInfo.swift",
"Misc/PriceFormatterProvider.swift",
"Misc/RateLimiter.swift",
"Misc/SandboxEnvironmentDetector.swift",
"Misc/StoreKitVersion.swift",
"Misc/SystemInfo.swift",
"Networking/Backend.swift",
"Networking/BackendConfiguration.swift",
"Networking/Caching/CacheFetchPolicy.swift",
"Networking/Caching/CallbackCache.swift",
"Networking/Caching/CallbackCacheStatus.swift",
"Networking/Caching/CustomerCenterConfigCallback.swift",
"Networking/Caching/CustomerInfoCallback.swift",
"Networking/Caching/LogInCallback.swift",
"Networking/Caching/OfferingsCallback.swift",
"Networking/Caching/ProductEntitlementMappingCallback.swift",
"Networking/CustomerAPI.swift",
"Networking/CustomerCenterConfigAPI.swift",
"Networking/HTTPClient/DNSChecker.swift",
"Networking/HTTPClient/ETagManager.swift",
"Networking/HTTPClient/ErrorResponse.swift",
"Networking/HTTPClient/HTTPClient.swift",
"Networking/HTTPClient/HTTPRequest.swift",
"Networking/HTTPClient/HTTPRequestBody.swift",
"Networking/HTTPClient/HTTPRequestPath.swift",
"Networking/HTTPClient/HTTPResponse.swift",
"Networking/HTTPClient/HTTPResponseBody.swift",
"Networking/HTTPClient/HTTPStatusCode.swift",
"Networking/HTTPClient/NetworkError.swift",
"Networking/HTTPClient/RedirectLoggerTaskDelegate.swift",
"Networking/IdentityAPI.swift",
"Networking/InternalAPI.swift",
"Networking/OfferingsAPI.swift",
"Networking/OfflineEntitlementsAPI.swift",
"Networking/Operations/GetCustomerCenterConfigOperation.swift",
"Networking/Operations/GetCustomerInfoOperation.swift",
"Networking/Operations/GetIntroEligibilityOperation.swift",
"Networking/Operations/GetOfferingsOperation.swift",
"Networking/Operations/GetProductEntitlementMappingOperation.swift",
"Networking/Operations/Handling/CustomerInfoResponseHandler.swift",
"Networking/Operations/HealthOperation.swift",
"Networking/Operations/HealthReportOperation.swift",
"Networking/Operations/LogInOperation.swift",
"Networking/Operations/NetworkOperation.swift",
"Networking/Operations/PostAdServicesTokenOperation.swift",
"Networking/Operations/PostAttributionDataOperation.swift",
"Networking/Operations/PostOfferForSigningOperation.swift",
"Networking/Operations/PostReceiptDataOperation.swift",
"Networking/Operations/PostRedeemWebPurchaseOperation.swift",
"Networking/Operations/PostSubscriberAttributesOperation.swift",
"Networking/RedeemWebPurchaseAPI.swift",
"Networking/Responses/CustomerCenterConfigResponse.swift",
"Networking/Responses/CustomerInfoResponse.swift",
"Networking/Responses/GetIntroEligibilityResponse.swift",
"Networking/Responses/HealthReportResponse.swift",
"Networking/Responses/OfferingsResponse.swift",
"Networking/Responses/PostOfferResponse.swift",
"Networking/Responses/ProductEntitlementMappingResponse.swift",
"Networking/Responses/RevenueCatUI/PaywallComponentsData.swift",
"Networking/Responses/RevenueCatUI/UIConfig.swift",
"OfflineEntitlements/CustomerInfo+OfflineEntitlements.swift",
"OfflineEntitlements/OfflineCustomerInfoCreator.swift",
"OfflineEntitlements/OfflineEntitlementsManager.swift",
"OfflineEntitlements/ProductEntitlementMapping.swift",
"OfflineEntitlements/ProductEntitlementMappingFetcher.swift",
"OfflineEntitlements/PurchasedProductsFetcher.swift",
"OfflineEntitlements/PurchasedSK2Product.swift",
"Paywalls/Components/Common/Background.swift",
"Paywalls/Components/Common/Border.swift",
"Paywalls/Components/Common/ComponentOverrides.swift",
"Paywalls/Components/Common/Dimension.swift",
"Paywalls/Components/Common/PaywallComponentBase.swift",
"Paywalls/Components/Common/PaywallComponentLocalization.swift",
"Paywalls/Components/Common/PaywallComponentPropertyTypes.swift",
"Paywalls/Components/PaywallButtonComponent.swift",
"Paywalls/Components/PaywallCarouselComponent.swift",
"Paywalls/Components/PaywallIconComponent.swift",
"Paywalls/Components/PaywallImageComponent.swift",
"Paywalls/Components/PaywallPackageComponent.swift",
"Paywalls/Components/PaywallPurchaseButtonComponent.swift",
"Paywalls/Components/PaywallStackComponent.swift",
"Paywalls/Components/PaywallStickyFooterComponent.swift",
"Paywalls/Components/PaywallTabsComponent.swift",
"Paywalls/Components/PaywallTextComponent.swift",
"Paywalls/Components/PaywallTimelineComponent.swift",
"Paywalls/Components/PaywallV2CacheWarming.swift",
"Paywalls/Events/Networking/EventsRequest+Paywall.swift",
"Paywalls/Events/Networking/PaywallHTTPRequestPath.swift",
"Paywalls/Events/Networking/PostPaywallEventsOperation.swift",
"Paywalls/Events/PaywallEvent.swift",
"Paywalls/Events/PaywallEventStore.swift",
"Paywalls/Events/PaywallEventsManager.swift",
"Paywalls/PaywallCacheWarming.swift",
"Paywalls/PaywallColor.swift",
"Paywalls/PaywallData+Localization.swift",
"Paywalls/PaywallData.swift",
"Paywalls/PaywallViewMode.swift",
"Purchasing/CachingProductsManager.swift",
"Purchasing/CachingTrialOrIntroPriceEligibilityChecker.swift",
"Purchasing/Configuration.swift",
"Purchasing/EntitlementInfo.swift",
"Purchasing/EntitlementInfos.swift",
"Purchasing/IntroEligibility.swift",
"Purchasing/IntroEligibilityCalculator.swift",
"Purchasing/NonSubscriptionTransaction.swift",
"Purchasing/Offering.swift",
"Purchasing/Offerings.swift",
"Purchasing/OfferingsFactory.swift",
"Purchasing/OfferingsManager.swift",
"Purchasing/Package.swift",
"Purchasing/PackageType.swift",
"Purchasing/ProductRequestData+Initialization.swift",
"Purchasing/ProductRequestData.swift",
"Purchasing/ProductsManager.swift",
"Purchasing/ProductsRequestFactory.swift",
"Purchasing/PurchaseOwnershipType.swift",
"Purchasing/Purchases/Attribution.swift",
"Purchasing/Purchases/PurchaseParams.swift",
"Purchasing/Purchases/Purchases.swift",
"Purchasing/Purchases/PurchasesAreCompletedBy.swift",
"Purchasing/Purchases/PurchasesDelegate.swift",
"Purchasing/Purchases/PurchasesOrchestrator.swift",
"Purchasing/Purchases/PurchasesType.swift",
"Purchasing/Purchases/TransactionPoster.swift",
"Purchasing/ReceiptFetcher.swift",
"Purchasing/ReceiptRefreshPolicy.swift",
"Purchasing/StoreKit1/PaymentQueueWrapper.swift",
"Purchasing/StoreKit1/ProductsFetcherSK1.swift",
"Purchasing/StoreKit1/StoreKit1Wrapper.swift",
"Purchasing/StoreKit1/StoreKitRequestFetcher.swift",
"Purchasing/StoreKit2/Observer Mode/StoreKit2ObserverModePurchaseDetector.swift",
"Purchasing/StoreKit2/ProductsFetcherSK2.swift",
"Purchasing/StoreKit2/SK2AppTransaction.swift",
"Purchasing/StoreKit2/SK2BeginRefundRequestHelper.swift",
"Purchasing/StoreKit2/StoreKit2PurchaseIntentListener.swift",
"Purchasing/StoreKit2/StoreKit2Receipt.swift",
"Purchasing/StoreKit2/StoreKit2StorefrontListener.swift",
"Purchasing/StoreKit2/StoreKit2TransactionFetcher.swift",
"Purchasing/StoreKit2/StoreKit2TransactionListener.swift",
"Purchasing/StoreKit2/Win-Back Offers/WinBackOfferEligibilityCalculator.swift",
"Purchasing/StoreKit2/Win-Back Offers/WinBackOfferEligibilityCalculatorType.swift",
"Purchasing/StoreKitAbstractions/EncodedAppleReceipt.swift",
"Purchasing/StoreKitAbstractions/ProductType.swift",
"Purchasing/StoreKitAbstractions/PromotionalOffer.swift",
"Purchasing/StoreKitAbstractions/SK1StoreProduct.swift",
"Purchasing/StoreKitAbstractions/SK1StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/SK1StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/SK1Storefront.swift",
"Purchasing/StoreKitAbstractions/SK2StoreProduct.swift",
"Purchasing/StoreKitAbstractions/SK2StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/SK2StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/SK2Storefront.swift",
"Purchasing/StoreKitAbstractions/StoreEnvironment.swift",
"Purchasing/StoreKitAbstractions/StoreKitWorkarounds.swift",
"Purchasing/StoreKitAbstractions/StoreProduct.swift",
"Purchasing/StoreKitAbstractions/StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/Storefront.swift",
"Purchasing/StoreKitAbstractions/StorefrontProvider.swift",
"Purchasing/StoreKitAbstractions/SubscriptionPeriod.swift",
"Purchasing/StoreKitAbstractions/Test Data/TestStoreProduct.swift",
"Purchasing/StoreKitAbstractions/Test Data/TestStoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/WinBackOffer.swift",
"Purchasing/TransactionsFactory.swift",
"Purchasing/TransactionsManager.swift",
"Purchasing/TrialOrIntroPriceEligibilityChecker.swift",
"Security/FakeSigning.swift",
"Security/HTTPRequest+Signing.swift",
"Security/HTTPRequestBody+Signing.swift",
"Security/Signing+ResponseVerification.swift",
"Security/Signing.swift",
"Security/VerificationResult.swift",
"SubscriberAttributes/AttributionDataMigrator.swift",
"SubscriberAttributes/AttributionKey.swift",
"SubscriberAttributes/ReservedSubscriberAttributes.swift",
"SubscriberAttributes/SubscriberAttribute.swift",
"SubscriberAttributes/SubscriberAttributesManager.swift",
"Support/BeginRefundRequestHelper.swift",
"Support/DebugUI/DebugContentViews.swift",
"Support/DebugUI/DebugView.swift",
"Support/DebugUI/DebugViewController.swift",
"Support/DebugUI/DebugViewModel.swift",
"Support/DebugUI/DebugViewSheetPresentation.swift",
"Support/DebugUI/ProductStatus+Icon.swift",
"Support/DebugUI/SDKHealthCheckStatus+Icon.swift",
"Support/DebugUI/SDKHealthStatus+Icon.swift",
"Support/FrameworkDisambiguation.swift",
"Support/HealthReport+Validate.swift",
"Support/ManageSubscriptionsHelper.swift",
"Support/PaywallExtensions.swift",
"Support/PurchasesDiagnostics.swift",
"Support/SDKHealthError+CustomNSError.swift",
"Support/StoreMessageType.swift",
"Support/StoreMessagesHelper.swift",
"Support/SwiftVersionCheck.swift",
"WebPurchaseRedemption/URL+WebPurchaseRedemption.swift",
"WebPurchaseRedemption/WebPurchaseRedemption.swift",
"WebPurchaseRedemption/WebPurchaseRedemptionHelper.swift",
"WebPurchaseRedemption/WebPurchaseRedemptionResult.swift"
],
"type" : "library"
},
{
"c99name" : "RevenueCatUITests",
"module_type" : "SwiftTarget",
"name" : "RevenueCatUITests",
"path" : "Tests/RevenueCatUITests",
"product_dependencies" : [
"Nimble",
"SnapshotTesting"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/Resources/background.heic",
"rule" : {
"copy" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/Resources/header.heic",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"BaseSnapshotTest.swift",
"CustomerCenter/ContactSupportUtilitiesTests.swift",
"CustomerCenter/CustomerCenterActionWrapperTests.swift",
"CustomerCenter/CustomerCenterViewModelTests.swift",
"CustomerCenter/FeedbackSurveyViewModelTests.swift",
"CustomerCenter/ManageSubscriptionsViewModelTests.swift",
"CustomerCenter/Mocks/MockCustomerCenterPurchases.swift",
"CustomerCenter/Mocks/MockCustomerCenterStoreKitUtilities.swift",
"CustomerCenter/Mocks/MockLoadPromotionalOfferUseCase.swift",
"CustomerCenter/Mocks/MockStoreProductDiscount.swift",
"CustomerCenter/PurchaseInformationTests.swift",
"CustomerCenter/SubscriptionInformationFixtures.swift",
"Data/LocalizedAlertErrorTests.swift",
"Data/PackageVariablesTests.swift",
"Data/PaywallDataValidationTests.swift",
"Data/SemanticVersionTests.swift",
"Data/TemplateViewConfigurationTests.swift",
"Data/VariablesTests.swift",
"Helpers/AsyncTestHelpers.swift",
"Helpers/AvailabilityChecks.swift",
"Helpers/CurrentTestCaseTracker.swift",
"Helpers/DataExtensions.swift",
"Helpers/ImageSnapshot.swift",
"Helpers/OSVersionEquivalent.swift",
"Helpers/SnapshotTesting+Extensions.swift",
"Helpers/TestCase.swift",
"ImageLoaderTests.swift",
"LocalizationTests.swift",
"PaywallFooterTests.swift",
"PaywallViewEventsTests.swift",
"PaywallsV2/LocaleFinderTests.swift",
"PaywallsV2/PresentedPartialsTests.swift",
"PaywallsV2/VariableHandlerV2Tests.swift",
"PresentIfNeededTests.swift",
"PurchaseCompletedHandlerTests.swift",
"Purchasing/PurchaseHandlerTests.swift",
"Templates/ExternalPurchaseAndRestoreTests.swift",
"Templates/OtherPaywallViewTests.swift",
"Templates/PaywallViewDynamicTypeTests.swift",
"Templates/PaywallViewLocalizationTests.swift",
"Templates/Template1ViewTests.swift",
"Templates/Template2ViewTests.swift",
"Templates/Template3ViewTests.swift",
"Templates/Template4ViewTests.swift",
"Templates/Template5ViewTests.swift",
"Templates/Template7ViewTests.swift"
],
"target_dependencies" : [
"RevenueCatUI"
],
"type" : "test"
},
{
"c99name" : "RevenueCatUI",
"module_type" : "SwiftTarget",
"name" : "RevenueCatUI",
"path" : "RevenueCatUI",
"product_memberships" : [
"RevenueCatUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ar.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ar"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/background.jpg",
"rule" : {
"copy" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/bg.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "bg"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ca.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ca"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/cs.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "cs"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/da.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "da"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/de.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "de"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/el.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "el"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/en_AU.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en_au"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/en_CA.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en_ca"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/en_GB.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en_gb"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/en_US.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en_us"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/es_419.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "es_419"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/es_ES.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "es_es"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/fi.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fi"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/fr_CA.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr_ca"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/fr_FR.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr_fr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/he.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "he"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hi.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "hi"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "hr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hu.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "hu"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/icons.xcassets",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/id.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "id"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/it.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "it"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ja.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ja"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/kk.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "kk"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ko.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ko"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ms.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ms"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/nl.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "nl"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/no.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "no"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pl.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pl"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pt_BR.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pt_br"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pt_PT.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pt_pt"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ro.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ro"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ru.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ru"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/sk.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sk"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/sv.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sv"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/th.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "th"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/tr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "tr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/uk.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "uk"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/vi.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "vi"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/zh_Hans.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh_hans"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/zh_Hant.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh_hant"
}
}
}
],
"sources" : [
"Binding+Extensions.swift",
"CustomerCenter/Abstractions/CustomerCenterPurchasesType.swift",
"CustomerCenter/Actions/CustomerCenter+PreferenceKeys.swift",
"CustomerCenter/Actions/CustomerCenterView+Actions.swift",
"CustomerCenter/ButtonStyles.swift",
"CustomerCenter/ColorFromAppearance.swift",
"CustomerCenter/ContactSupportUtilities.swift",
"CustomerCenter/CustomerInfo+CurrentEntitlement.swift",
"CustomerCenter/Data/CustomerCenterAction.swift",
"CustomerCenter/Data/CustomerCenterActionViewModifier.swift",
"CustomerCenter/Data/CustomerCenterActionWrapper.swift",
"CustomerCenter/Data/CustomerCenterConfigTestData.swift",
"CustomerCenter/Data/CustomerCenterEnvironment.swift",
"CustomerCenter/Data/CustomerCenterError.swift",
"CustomerCenter/Data/CustomerCenterManagementOption.swift",
"CustomerCenter/Data/CustomerCenterPurchases.swift",
"CustomerCenter/Data/FeedbackSurveyData.swift",
"CustomerCenter/Data/LoadPromotionalOfferUseCase.swift",
"CustomerCenter/Data/PromotionalOfferData.swift",
"CustomerCenter/Data/PurchaseInformation.swift",
"CustomerCenter/Data/SemanticVersion.swift",
"CustomerCenter/Extensions/CustomerCenterConfigDataSupport+URL.swift",
"CustomerCenter/Extensions/CustomerInfo+ActiveTransaction.swift",
"CustomerCenter/Extensions/Store+Localization.swift",
"CustomerCenter/URLUtilities.swift",
"CustomerCenter/Utilities/CustomerCenterLocalizationStrings.swift",
"CustomerCenter/Utilities/CustomerCenterStoreKitUtilities.swift",
"CustomerCenter/Utilities/CustomerCenterStoreKitUtilitiesType.swift",
"CustomerCenter/View+PresentCustomerCenter.swift",
"CustomerCenter/ViewModels/CustomerCenterViewModel.swift",
"CustomerCenter/ViewModels/CustomerCenterViewState.swift",
"CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift",
"CustomerCenter/ViewModels/ManageSubscriptions/ManageSubscriptionsViewModel.swift",
"CustomerCenter/ViewModels/PromotionalOfferViewModel.swift",
"CustomerCenter/ViewModels/PurchaseHistory/PurchaseDetailItem.swift",
"CustomerCenter/ViewModels/PurchaseHistory/PurchaseDetailViewModel.swift",
"CustomerCenter/ViewModels/PurchaseHistory/PurchaseHistoryViewModel.swift",
"CustomerCenter/ViewModels/PurchaseHistory/PurchaseInfo.swift",
"CustomerCenter/ViewModels/RestorePurchasesAlertViewModel.swift",
"CustomerCenter/Views/AppUpdateWarningView.swift",
"CustomerCenter/Views/CompatibilityContentUnavailableView.swift",
"CustomerCenter/Views/CompatibilityLabeledContent.swift",
"CustomerCenter/Views/CompatibilityNavigationStack.swift",
"CustomerCenter/Views/CompatibilityTopBarTrailing.swift",
"CustomerCenter/Views/CustomerCenterNavigationLink.swift",
"CustomerCenter/Views/CustomerCenterNavigationOptions.swift",
"CustomerCenter/Views/CustomerCenterView.swift",
"CustomerCenter/Views/ErrorView.swift",
"CustomerCenter/Views/FeedbackSurveyView.swift",
"CustomerCenter/Views/ManageSubscriptionsButtonsView.swift",
"CustomerCenter/Views/ManageSubscriptionsView.swift",
"CustomerCenter/Views/NoSubscriptionsView.swift",
"CustomerCenter/Views/PromotionalOfferView.swift",
"CustomerCenter/Views/PurchaseHistory/PurchaseDetailView.swift",
"CustomerCenter/Views/PurchaseHistory/PurchaseHistoryView.swift",
"CustomerCenter/Views/PurchaseHistory/PurchaseLinkView.swift",
"CustomerCenter/Views/RestorePurchasesAlert.swift",
"CustomerCenter/Views/SubscriptionDetailsView.swift",
"CustomerCenter/Views/TintedProgressView.swift",
"CustomerCenter/Views/UIKit Compatibility/CustomerCenterViewController.swift",
"CustomerCenter/Views/WrongPlatformView.swift",
"Data/Constants.swift",
"Data/CustomerInfoFixtures.swift",
"Data/Errors/PaywallError.swift",
"Data/Errors/TemplateError.swift",
"Data/IntroEligibility/IntroEligibilityViewModel.swift",
"Data/IntroEligibility/TrialOrIntroEligibilityChecker+TestData.swift",
"Data/IntroEligibility/TrialOrIntroEligibilityChecker.swift",
"Data/Localization.swift",
"Data/LocalizedAlertError.swift",
"Data/PaywallData+Validation.swift",
"Data/PaywallTemplate.swift",
"Data/PaywallViewConfiguration.swift",
"Data/PaywallViewMode+Extensions.swift",
"Data/ProcessedLocalizedConfiguration.swift",
"Data/Strings.swift",
"Data/TemplateViewConfiguration+Extensions.swift",
"Data/TemplateViewConfiguration+Images.swift",
"Data/TemplateViewConfiguration.swift",
"Data/TestData.swift",
"Data/UserInterfaceIdiom.swift",
"Data/Variables.swift",
"Helpers/Bundle+Extensions.swift",
"Helpers/ColorInformation+MultiScheme.swift",
"Helpers/EmergeRenderingMode.swift",
"Helpers/ImageLoader.swift",
"Helpers/Logger.swift",
"Helpers/Optional+Extensions.swift",
"Helpers/Package+VariableDataProvider.swift",
"Helpers/PaywallData+Default.swift",
"Helpers/PreviewHelpers.swift",
"Helpers/RuntimeUtils.swift",
"Helpers/StoreProduct+Extensions.swift",
"Helpers/StoreProductDiscount+Extensions.swift",
"Helpers/SubscriptionPeriod+Extensions.swift",
"Helpers/TemplateView+MultiTier.swift",
"Helpers/VersionDetector.swift",
"Modifiers/ConsistentPackageContentView.swift",
"Modifiers/ConsistentTierContentView.swift",
"Modifiers/FitToAspectRatio.swift",
"Modifiers/FooterHidingModifier.swift",
"Modifiers/ViewExtensions.swift",
"PaywallFontProvider.swift",
"PaywallView.swift",
"Purchasing/MockPurchases.swift",
"Purchasing/PaywallPurchasesType.swift",
"Purchasing/PurchaseHandler+TestData.swift",
"Purchasing/PurchaseHandler.swift",
"Templates/Other platforms/WatchTemplateView.swift",
"Templates/Template1View.swift",
"Templates/Template2View.swift",
"Templates/Template3View.swift",
"Templates/Template4View.swift",
"Templates/Template5View.swift",
"Templates/Template7View.swift",
"Templates/TemplateViewType.swift",
"Templates/V2/Components/Button/BottomSheetView.swift",
"Templates/V2/Components/Button/ButtonComponentView.swift",
"Templates/V2/Components/Button/ButtonComponentViewModel.swift",
"Templates/V2/Components/Carousel/CarouselComponentView.swift",
"Templates/V2/Components/Carousel/CarouselComponentViewModel.swift",
"Templates/V2/Components/ComponentsView.swift",
"Templates/V2/Components/Icon/IconComponentView.swift",
"Templates/V2/Components/Icon/IconComponentViewModel.swift",
"Templates/V2/Components/Image/ImageComponentView.swift",
"Templates/V2/Components/Image/ImageComponentViewModel.swift",
"Templates/V2/Components/Packages/Package/ComponentViewState.swift",
"Templates/V2/Components/Packages/Package/PackageComponentView.swift",
"Templates/V2/Components/Packages/Package/PackageComponentViewModel.swift",
"Templates/V2/Components/Packages/PurchaseButton/PurchaseButtonComponentView.swift",
"Templates/V2/Components/Packages/PurchaseButton/PurchaseButtonComponentViewModel.swift",
"Templates/V2/Components/Root/RootView.swift",
"Templates/V2/Components/Root/RootViewModel.swift",
"Templates/V2/Components/Stack/FlexHStack.swift",
"Templates/V2/Components/Stack/FlexVStack.swift",
"Templates/V2/Components/Stack/JustifyContent.swift",
"Templates/V2/Components/Stack/StackComponentView.swift",
"Templates/V2/Components/Stack/StackComponentViewModel.swift",
"Templates/V2/Components/StickyFooter/StickyFooterComponentView.swift",
"Templates/V2/Components/StickyFooter/StickyFooterComponentViewModel.swift",
"Templates/V2/Components/Tabs/TabControlButtonComponentView.swift",
"Templates/V2/Components/Tabs/TabControlButtonComponentViewModel.swift",
"Templates/V2/Components/Tabs/TabControlComponentView.swift",
"Templates/V2/Components/Tabs/TabControlComponentViewModel.swift",
"Templates/V2/Components/Tabs/TabControlToggleComponentView.swift",
"Templates/V2/Components/Tabs/TabControlToggleComponentViewModel.swift",
"Templates/V2/Components/Tabs/TabsComponentView.swift",
"Templates/V2/Components/Tabs/TabsComponentViewModel.swift",
"Templates/V2/Components/Text/TextComponentView.swift",
"Templates/V2/Components/Text/TextComponentViewModel.swift",
"Templates/V2/Components/Timeline/TimelineComponentView.swift",
"Templates/V2/Components/Timeline/TimelineComponentViewModel.swift",
"Templates/V2/EnvironmentObjects/IntroOfferEligibilityContext.swift",
"Templates/V2/EnvironmentObjects/PackageContext.swift",
"Templates/V2/EnvironmentObjects/ScreenCondition.swift",
"Templates/V2/Localizations/LocaleExtensions.swift",
"Templates/V2/Localizations/LocaleFinder.swift",
"Templates/V2/PaywallsV2View.swift",
"Templates/V2/Previews/PreviewMock.swift",
"Templates/V2/Previews/TemplateComponentsViewPreviews/FallbackComponentPreview.swift",
"Templates/V2/Previews/TemplateComponentsViewPreviews/FamilySharingTogglePreview.swift",
"Templates/V2/Previews/TemplateComponentsViewPreviews/MultiTierPreview.swift",
"Templates/V2/Previews/TemplateComponentsViewPreviews/PurchaseButtonInPackage.swift",
"Templates/V2/Previews/TemplateComponentsViewPreviews/Template1Preview.swift",
"Templates/V2/Variables/VariableHandlerV2.swift",
"Templates/V2/ViewHelpers/BackgroundStyle.swift",
"Templates/V2/ViewHelpers/BadgeModifier.swift",
"Templates/V2/ViewHelpers/DisplayableColor.swift",
"Templates/V2/ViewHelpers/Fill.swift",
"Templates/V2/ViewHelpers/ForegroundColorScheme.swift",
"Templates/V2/ViewHelpers/ProgressViewModifier.swift",
"Templates/V2/ViewHelpers/ShadowModifier.swift",
"Templates/V2/ViewHelpers/Shape.swift",
"Templates/V2/ViewHelpers/SizeModifier.swift",
"Templates/V2/ViewModelHelpers/LocalizationProvider.swift",
"Templates/V2/ViewModelHelpers/PackageValidator.swift",
"Templates/V2/ViewModelHelpers/PaywallComponentTypeTransformers.swift",
"Templates/V2/ViewModelHelpers/PaywallComponentViewModel.swift",
"Templates/V2/ViewModelHelpers/PresentedPartials.swift",
"Templates/V2/ViewModelHelpers/UIConfigProvider.swift",
"Templates/V2/ViewModelHelpers/ViewModelFactory.swift",
"UIKit/PaywallFooterViewController.swift",
"UIKit/PaywallViewController.swift",
"View+OnRedeemWebPurchaseAttempt.swift",
"View+PresentPaywall.swift",
"View+PresentPaywallFooter.swift",
"View+PurchaseRestoreCompleted.swift",
"Views/AsyncButton.swift",
"Views/DebugErrorView.swift",
"Views/ErrorDisplay.swift",
"Views/FooterView.swift",
"Views/GradientView.swift",
"Views/IconView.swift",
"Views/IntroEligibilityStateView.swift",
"Views/LoadingPaywallView.swift",
"Views/PackageButtonStyle.swift",
"Views/ProgressView.swift",
"Views/PurchaseButton.swift",
"Views/RemoteImage.swift",
"Views/SafariView.swift",
"Views/TemplateBackgroundImageView.swift",
"Views/TemplatePackageSetting.swift",
"Views/TierSelectorView.swift"
],
"target_dependencies" : [
"RevenueCat"
],
"type" : "library"
},
{
"c99name" : "RevenueCat",
"module_type" : "SwiftTarget",
"name" : "RevenueCat",
"path" : "Sources",
"product_memberships" : [
"RevenueCat",
"RevenueCatUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"Attribution/ASIdManagerProxy.swift",
"Attribution/AttributionData.swift",
"Attribution/AttributionFetcher.swift",
"Attribution/AttributionNetwork.swift",
"Attribution/AttributionPoster.swift",
"Attribution/AttributionTypeFactory.swift",
"Attribution/TrackingManagerProxy.swift",
"Caching/CacheStatus.swift",
"Caching/DeviceCache.swift",
"Caching/InMemoryCachedObject.swift",
"CodableExtensions/PeriodType+Extensions.swift",
"CodableExtensions/PurchaseOwnershipType+Extensions.swift",
"CodableExtensions/Store+Extensions.swift",
"CustomerCenter/CustomerCenterConfigData.swift",
"CustomerCenter/CustomerCenterPresentationMode.swift",
"CustomerCenter/Events/CustomerCenterEvent.swift",
"CustomerCenter/Events/EventsRequest+CustomerCenter.swift",
"DeepLink/DeepLinkParser.swift",
"Diagnostics/DiagnosticsEvent.swift",
"Diagnostics/DiagnosticsFileHandler.swift",
"Diagnostics/DiagnosticsTracker.swift",
"Diagnostics/FileHandler.swift",
"Diagnostics/Networking/DiagnosticsEventsRequest.swift",
"Diagnostics/Networking/DiagnosticsHTTPRequestPath.swift",
"Diagnostics/Networking/DiagnosticsPostOperation.swift",
"Diagnostics/Networking/DiagnosticsSynchronizer.swift",
"DocCDocumentation/EmptyFile.swift",
"Error Handling/Assertions.swift",
"Error Handling/BackendError.swift",
"Error Handling/BackendErrorCode.swift",
"Error Handling/DescribableError.swift",
"Error Handling/ErrorCode.swift",
"Error Handling/ErrorDetails.swift",
"Error Handling/ErrorUtils.swift",
"Error Handling/PurchasesError.swift",
"Error Handling/SKError+Extensions.swift",
"Error Handling/StoreKitError+Extensions.swift",
"Error Handling/StoreKitErrorHelper.swift",
"Events/FeatureEvent.swift",
"Events/Networking/EventsRequest.swift",
"Events/StoredEvent.swift",
"Events/StoredEventSerializer.swift",
"FoundationExtensions/Array+Extensions.swift",
"FoundationExtensions/AsyncExtensions.swift",
"FoundationExtensions/Data+Extensions.swift",
"FoundationExtensions/Date+Extensions.swift",
"FoundationExtensions/Decoder+Extensions.swift",
"FoundationExtensions/Dictionary+Extensions.swift",
"FoundationExtensions/DispatchTimeInterval+Extensions.swift",
"FoundationExtensions/Error+Extensions.swift",
"FoundationExtensions/Integer+Extensions.swift",
"FoundationExtensions/Locale+Extensions.swift",
"FoundationExtensions/OperationQueue+Extensions.swift",
"FoundationExtensions/Operators+Extensions.swift",
"FoundationExtensions/Optional+Extensions.swift",
"FoundationExtensions/Result+Extensions.swift",
"FoundationExtensions/Set+Extensions.swift",
"FoundationExtensions/String+Extensions.swift",
"FoundationExtensions/TimeInterval+Extensions.swift",
"FoundationExtensions/UIApplication+RCExtensions.swift",
"FoundationExtensions/UserDefaults+Extensions.swift",
"Identity/CustomerInfo+ActiveDates.swift",
"Identity/CustomerInfo+NonSubscriptions.swift",
"Identity/CustomerInfo.swift",
"Identity/CustomerInfoManager.swift",
"Identity/IdentityManager.swift",
"Identity/ProductPaidPrice.swift",
"Identity/SubscriptionInfo.swift",
"LocalReceiptParsing/BasicTypes/ASN1Container.swift",
"LocalReceiptParsing/BasicTypes/ASN1ObjectIdentifier.swift",
"LocalReceiptParsing/BasicTypes/AppleReceipt.swift",
"LocalReceiptParsing/BasicTypes/InAppPurchase.swift",
"LocalReceiptParsing/Builders/ASN1ContainerBuilder.swift",
"LocalReceiptParsing/Builders/ASN1ObjectIdentifierBuilder.swift",
"LocalReceiptParsing/Builders/AppleReceiptBuilder.swift",
"LocalReceiptParsing/Builders/InAppPurchaseBuilder.swift",
"LocalReceiptParsing/DataConverters/ArraySlice_UInt8+Extensions.swift",
"LocalReceiptParsing/DataConverters/Codable+Extensions.swift",
"LocalReceiptParsing/DataConverters/DateFormatter+Extensions.swift",
"LocalReceiptParsing/DataConverters/UInt8+Extensions.swift",
"LocalReceiptParsing/Helpers/FileReader.swift",
"LocalReceiptParsing/Helpers/LoggerType.swift",
"LocalReceiptParsing/Helpers/ProcessInfo+Extensions.swift",
"LocalReceiptParsing/Helpers/ReceiptParserLogger.swift",
"LocalReceiptParsing/Helpers/ReceiptStrings.swift",
"LocalReceiptParsing/LocalReceiptFetcher.swift",
"LocalReceiptParsing/PurchasesReceiptParser.swift",
"LocalReceiptParsing/ReceiptParsingError.swift",
"Logging/LogIntent.swift",
"Logging/Logger.swift",
"Logging/Strings/AnalyticsStrings.swift",
"Logging/Strings/AttributionStrings.swift",
"Logging/Strings/BackendErrorStrings.swift",
"Logging/Strings/CodableStrings.swift",
"Logging/Strings/ConfigureStrings.swift",
"Logging/Strings/CustomerInfoStrings.swift",
"Logging/Strings/DiagnosticsStrings.swift",
"Logging/Strings/ETagStrings.swift",
"Logging/Strings/EligibilityStrings.swift",
"Logging/Strings/IdentityStrings.swift",
"Logging/Strings/ManageSubscriptionsStrings.swift",
"Logging/Strings/NetworkStrings.swift",
"Logging/Strings/OfferingStrings.swift",
"Logging/Strings/OfflineEntitlementsStrings.swift",
"Logging/Strings/PaywallsStrings.swift",
"Logging/Strings/PurchaseStrings.swift",
"Logging/Strings/SigningStrings.swift",
"Logging/Strings/StoreKitStrings.swift",
"Logging/Strings/Strings.swift",
"Logging/Strings/WebRedemptionStrings.swift",
"Misc/Box.swift",
"Misc/Codable/AnyDecodable.swift",
"Misc/Codable/AnyEncodable.swift",
"Misc/Codable/DefaultDecodable.swift",
"Misc/Codable/EnsureNonEmptyCollectionDecodable.swift",
"Misc/Codable/IgnoreHashable.swift",
"Misc/Codable/NonEmptyStringDecodable.swift",
"Misc/Codable/RawDataContainer.swift",
"Misc/Concurrency/Atomic.swift",
"Misc/Concurrency/Lock.swift",
"Misc/Concurrency/OperationDispatcher.swift",
"Misc/Concurrency/Purchases+async.swift",
"Misc/Concurrency/Purchases+nonasync.swift",
"Misc/Concurrency/SynchronizedUserDefaults.swift",
"Misc/DangerousSettings.swift",
"Misc/DateAndTime/Clock.swift",
"Misc/DateAndTime/DateExtensions.swift",
"Misc/DateAndTime/DateProvider.swift",
"Misc/DateAndTime/ISODurationFormatter.swift",
"Misc/DateAndTime/ISOPeriodFormatter.swift",
"Misc/DateAndTime/TimingUtil.swift",
"Misc/Deprecations.swift",
"Misc/Either.swift",
"Misc/Locale/PreferredLocalesProvider.swift",
"Misc/MacDevice.swift",
"Misc/MapAppStoreDetector.swift",
"Misc/Obsoletions.swift",
"Misc/PlatformInfo.swift",
"Misc/PriceFormatterProvider.swift",
"Misc/RateLimiter.swift",
"Misc/SandboxEnvironmentDetector.swift",
"Misc/StoreKitVersion.swift",
"Misc/SystemInfo.swift",
"Networking/Backend.swift",
"Networking/BackendConfiguration.swift",
"Networking/Caching/CacheFetchPolicy.swift",
"Networking/Caching/CallbackCache.swift",
"Networking/Caching/CallbackCacheStatus.swift",
"Networking/Caching/CustomerCenterConfigCallback.swift",
"Networking/Caching/CustomerInfoCallback.swift",
"Networking/Caching/LogInCallback.swift",
"Networking/Caching/OfferingsCallback.swift",
"Networking/Caching/ProductEntitlementMappingCallback.swift",
"Networking/CustomerAPI.swift",
"Networking/CustomerCenterConfigAPI.swift",
"Networking/HTTPClient/DNSChecker.swift",
"Networking/HTTPClient/ETagManager.swift",
"Networking/HTTPClient/ErrorResponse.swift",
"Networking/HTTPClient/HTTPClient.swift",
"Networking/HTTPClient/HTTPRequest.swift",
"Networking/HTTPClient/HTTPRequestBody.swift",
"Networking/HTTPClient/HTTPRequestPath.swift",
"Networking/HTTPClient/HTTPResponse.swift",
"Networking/HTTPClient/HTTPResponseBody.swift",
"Networking/HTTPClient/HTTPStatusCode.swift",
"Networking/HTTPClient/NetworkError.swift",
"Networking/HTTPClient/RedirectLoggerTaskDelegate.swift",
"Networking/IdentityAPI.swift",
"Networking/InternalAPI.swift",
"Networking/OfferingsAPI.swift",
"Networking/OfflineEntitlementsAPI.swift",
"Networking/Operations/GetCustomerCenterConfigOperation.swift",
"Networking/Operations/GetCustomerInfoOperation.swift",
"Networking/Operations/GetIntroEligibilityOperation.swift",
"Networking/Operations/GetOfferingsOperation.swift",
"Networking/Operations/GetProductEntitlementMappingOperation.swift",
"Networking/Operations/Handling/CustomerInfoResponseHandler.swift",
"Networking/Operations/HealthOperation.swift",
"Networking/Operations/HealthReportOperation.swift",
"Networking/Operations/LogInOperation.swift",
"Networking/Operations/NetworkOperation.swift",
"Networking/Operations/PostAdServicesTokenOperation.swift",
"Networking/Operations/PostAttributionDataOperation.swift",
"Networking/Operations/PostOfferForSigningOperation.swift",
"Networking/Operations/PostReceiptDataOperation.swift",
"Networking/Operations/PostRedeemWebPurchaseOperation.swift",
"Networking/Operations/PostSubscriberAttributesOperation.swift",
"Networking/RedeemWebPurchaseAPI.swift",
"Networking/Responses/CustomerCenterConfigResponse.swift",
"Networking/Responses/CustomerInfoResponse.swift",
"Networking/Responses/GetIntroEligibilityResponse.swift",
"Networking/Responses/HealthReportResponse.swift",
"Networking/Responses/OfferingsResponse.swift",
"Networking/Responses/PostOfferResponse.swift",
"Networking/Responses/ProductEntitlementMappingResponse.swift",
"Networking/Responses/RevenueCatUI/PaywallComponentsData.swift",
"Networking/Responses/RevenueCatUI/UIConfig.swift",
"OfflineEntitlements/CustomerInfo+OfflineEntitlements.swift",
"OfflineEntitlements/OfflineCustomerInfoCreator.swift",
"OfflineEntitlements/OfflineEntitlementsManager.swift",
"OfflineEntitlements/ProductEntitlementMapping.swift",
"OfflineEntitlements/ProductEntitlementMappingFetcher.swift",
"OfflineEntitlements/PurchasedProductsFetcher.swift",
"OfflineEntitlements/PurchasedSK2Product.swift",
"Paywalls/Components/Common/Background.swift",
"Paywalls/Components/Common/Border.swift",
"Paywalls/Components/Common/ComponentOverrides.swift",
"Paywalls/Components/Common/Dimension.swift",
"Paywalls/Components/Common/PaywallComponentBase.swift",
"Paywalls/Components/Common/PaywallComponentLocalization.swift",
"Paywalls/Components/Common/PaywallComponentPropertyTypes.swift",
"Paywalls/Components/PaywallButtonComponent.swift",
"Paywalls/Components/PaywallCarouselComponent.swift",
"Paywalls/Components/PaywallIconComponent.swift",
"Paywalls/Components/PaywallImageComponent.swift",
"Paywalls/Components/PaywallPackageComponent.swift",
"Paywalls/Components/PaywallPurchaseButtonComponent.swift",
"Paywalls/Components/PaywallStackComponent.swift",
"Paywalls/Components/PaywallStickyFooterComponent.swift",
"Paywalls/Components/PaywallTabsComponent.swift",
"Paywalls/Components/PaywallTextComponent.swift",
"Paywalls/Components/PaywallTimelineComponent.swift",
"Paywalls/Components/PaywallV2CacheWarming.swift",
"Paywalls/Events/Networking/EventsRequest+Paywall.swift",
"Paywalls/Events/Networking/PaywallHTTPRequestPath.swift",
"Paywalls/Events/Networking/PostPaywallEventsOperation.swift",
"Paywalls/Events/PaywallEvent.swift",
"Paywalls/Events/PaywallEventStore.swift",
"Paywalls/Events/PaywallEventsManager.swift",
"Paywalls/PaywallCacheWarming.swift",
"Paywalls/PaywallColor.swift",
"Paywalls/PaywallData+Localization.swift",
"Paywalls/PaywallData.swift",
"Paywalls/PaywallViewMode.swift",
"Purchasing/CachingProductsManager.swift",
"Purchasing/CachingTrialOrIntroPriceEligibilityChecker.swift",
"Purchasing/Configuration.swift",
"Purchasing/EntitlementInfo.swift",
"Purchasing/EntitlementInfos.swift",
"Purchasing/IntroEligibility.swift",
"Purchasing/IntroEligibilityCalculator.swift",
"Purchasing/NonSubscriptionTransaction.swift",
"Purchasing/Offering.swift",
"Purchasing/Offerings.swift",
"Purchasing/OfferingsFactory.swift",
"Purchasing/OfferingsManager.swift",
"Purchasing/Package.swift",
"Purchasing/PackageType.swift",
"Purchasing/ProductRequestData+Initialization.swift",
"Purchasing/ProductRequestData.swift",
"Purchasing/ProductsManager.swift",
"Purchasing/ProductsRequestFactory.swift",
"Purchasing/PurchaseOwnershipType.swift",
"Purchasing/Purchases/Attribution.swift",
"Purchasing/Purchases/PurchaseParams.swift",
"Purchasing/Purchases/Purchases.swift",
"Purchasing/Purchases/PurchasesAreCompletedBy.swift",
"Purchasing/Purchases/PurchasesDelegate.swift",
"Purchasing/Purchases/PurchasesOrchestrator.swift",
"Purchasing/Purchases/PurchasesType.swift",
"Purchasing/Purchases/TransactionPoster.swift",
"Purchasing/ReceiptFetcher.swift",
"Purchasing/ReceiptRefreshPolicy.swift",
"Purchasing/StoreKit1/PaymentQueueWrapper.swift",
"Purchasing/StoreKit1/ProductsFetcherSK1.swift",
"Purchasing/StoreKit1/StoreKit1Wrapper.swift",
"Purchasing/StoreKit1/StoreKitRequestFetcher.swift",
"Purchasing/StoreKit2/Observer Mode/StoreKit2ObserverModePurchaseDetector.swift",
"Purchasing/StoreKit2/ProductsFetcherSK2.swift",
"Purchasing/StoreKit2/SK2AppTransaction.swift",
"Purchasing/StoreKit2/SK2BeginRefundRequestHelper.swift",
"Purchasing/StoreKit2/StoreKit2PurchaseIntentListener.swift",
"Purchasing/StoreKit2/StoreKit2Receipt.swift",
"Purchasing/StoreKit2/StoreKit2StorefrontListener.swift",
"Purchasing/StoreKit2/StoreKit2TransactionFetcher.swift",
"Purchasing/StoreKit2/StoreKit2TransactionListener.swift",
"Purchasing/StoreKit2/Win-Back Offers/WinBackOfferEligibilityCalculator.swift",
"Purchasing/StoreKit2/Win-Back Offers/WinBackOfferEligibilityCalculatorType.swift",
"Purchasing/StoreKitAbstractions/EncodedAppleReceipt.swift",
"Purchasing/StoreKitAbstractions/ProductType.swift",
"Purchasing/StoreKitAbstractions/PromotionalOffer.swift",
"Purchasing/StoreKitAbstractions/SK1StoreProduct.swift",
"Purchasing/StoreKitAbstractions/SK1StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/SK1StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/SK1Storefront.swift",
"Purchasing/StoreKitAbstractions/SK2StoreProduct.swift",
"Purchasing/StoreKitAbstractions/SK2StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/SK2StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/SK2Storefront.swift",
"Purchasing/StoreKitAbstractions/StoreEnvironment.swift",
"Purchasing/StoreKitAbstractions/StoreKitWorkarounds.swift",
"Purchasing/StoreKitAbstractions/StoreProduct.swift",
"Purchasing/StoreKitAbstractions/StoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/StoreTransaction.swift",
"Purchasing/StoreKitAbstractions/Storefront.swift",
"Purchasing/StoreKitAbstractions/StorefrontProvider.swift",
"Purchasing/StoreKitAbstractions/SubscriptionPeriod.swift",
"Purchasing/StoreKitAbstractions/Test Data/TestStoreProduct.swift",
"Purchasing/StoreKitAbstractions/Test Data/TestStoreProductDiscount.swift",
"Purchasing/StoreKitAbstractions/WinBackOffer.swift",
"Purchasing/TransactionsFactory.swift",
"Purchasing/TransactionsManager.swift",
"Purchasing/TrialOrIntroPriceEligibilityChecker.swift",
"Security/FakeSigning.swift",
"Security/HTTPRequest+Signing.swift",
"Security/HTTPRequestBody+Signing.swift",
"Security/Signing+ResponseVerification.swift",
"Security/Signing.swift",
"Security/VerificationResult.swift",
"SubscriberAttributes/AttributionDataMigrator.swift",
"SubscriberAttributes/AttributionKey.swift",
"SubscriberAttributes/ReservedSubscriberAttributes.swift",
"SubscriberAttributes/SubscriberAttribute.swift",
"SubscriberAttributes/SubscriberAttributesManager.swift",
"Support/BeginRefundRequestHelper.swift",
"Support/DebugUI/DebugContentViews.swift",
"Support/DebugUI/DebugView.swift",
"Support/DebugUI/DebugViewController.swift",
"Support/DebugUI/DebugViewModel.swift",
"Support/DebugUI/DebugViewSheetPresentation.swift",
"Support/DebugUI/ProductStatus+Icon.swift",
"Support/DebugUI/SDKHealthCheckStatus+Icon.swift",
"Support/DebugUI/SDKHealthStatus+Icon.swift",
"Support/FrameworkDisambiguation.swift",
"Support/HealthReport+Validate.swift",
"Support/ManageSubscriptionsHelper.swift",
"Support/PaywallExtensions.swift",
"Support/PurchasesDiagnostics.swift",
"Support/SDKHealthError+CustomNSError.swift",
"Support/StoreMessageType.swift",
"Support/StoreMessagesHelper.swift",
"Support/SwiftVersionCheck.swift",
"WebPurchaseRedemption/URL+WebPurchaseRedemption.swift",
"WebPurchaseRedemption/WebPurchaseRedemption.swift",
"WebPurchaseRedemption/WebPurchaseRedemptionHelper.swift",
"WebPurchaseRedemption/WebPurchaseRedemptionResult.swift"
],
"type" : "library"
},
{
"c99name" : "ReceiptParserTests",
"module_type" : "SwiftTarget",
"name" : "ReceiptParserTests",
"path" : "Tests/ReceiptParserTests",
"product_dependencies" : [
"Nimble"
],
"sources" : [
"Helpers/MockBundle.swift",
"ReceiptParserFetchingTests.swift"
],
"target_dependencies" : [
"ReceiptParser"
],
"type" : "test"
},
{
"c99name" : "ReceiptParser",
"module_type" : "SwiftTarget",
"name" : "ReceiptParser",
"path" : "LocalReceiptParsing",
"product_memberships" : [
"ReceiptParser"
],
"sources" : [
"BasicTypes/ASN1Container.swift",
"BasicTypes/ASN1ObjectIdentifier.swift",
"BasicTypes/AppleReceipt.swift",
"BasicTypes/InAppPurchase.swift",
"Builders/ASN1ContainerBuilder.swift",
"Builders/ASN1ObjectIdentifierBuilder.swift",
"Builders/AppleReceiptBuilder.swift",
"Builders/InAppPurchaseBuilder.swift",
"DataConverters/ArraySlice_UInt8+Extensions.swift",
"DataConverters/Codable+Extensions.swift",
"DataConverters/DateFormatter+Extensions.swift",
"DataConverters/UInt8+Extensions.swift",
"Helpers/FileReader.swift",
"Helpers/LoggerType.swift",
"Helpers/ProcessInfo+Extensions.swift",
"Helpers/ReceiptParserLogger.swift",
"Helpers/ReceiptStrings.swift",
"LocalReceiptFetcher.swift",
"PurchasesReceiptParser.swift",
"ReceiptParser-only-files/PurchasesReceiptParser+Extensions.swift",
"ReceiptParsingError.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/Templates/__Snapshots__': File not found.
Done.