The Swift Package Index logo.Swift Package Index

Build Information

Successful build of RevenueCat, reference 5.70.0 (8f5f5e), with Swift 6.1 for macOS (SPM) on 30 Apr 2026 12:58:50 UTC.

Swift 6 data race errors: 218

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

841 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
842 |
843 |     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
844 |
845 |     static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:854: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
852 | struct RestoreInProgressPreferenceKey: PreferenceKey {
853 |
854 |     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
855 |
856 |     static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:882: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
880 |     }
881 |
882 |     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
883 |
884 |     static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:893: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
891 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
892 |
893 |     static var defaultValue: PurchaseHandler.RestoreResult?
    |                |- 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
894 |
895 |     static func reduce(value: inout PurchaseHandler.RestoreResult?, nextValue: () -> PurchaseHandler.RestoreResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:904: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
902 | struct PurchaseErrorPreferenceKey: PreferenceKey {
903 |
904 |     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
905 |
906 |     static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:915: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
913 | struct RestoreErrorPreferenceKey: PreferenceKey {
914 |
915 |     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
916 |
917 |     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:927: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
925 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
926 | struct RequestedDismissalKey: EnvironmentKey {
927 |     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
928 | }
929 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78: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
 65 |
 66 |     @ViewBuilder // swiftlint:disable:next function_parameter_count
 67 |     func createView(
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:mode:purchaseHandler:)' part of global actor 'MainActor'
 68 |         for offering: Offering,
 69 |         template: PaywallTemplate,
    :
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
    :
152 | extension View {
153 |
154 |     func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
    |          `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
155 |         self
156 |             .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:80:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 78 |                 .adaptTemplateView(with: configuration)
 79 |                 .task(id: offering) {
 80 |                     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
 81 |                 }
 82 |
/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:84:13: warning: call to main actor-isolated initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |
 66 |     @ViewBuilder // swiftlint:disable:next function_parameter_count
 67 |     func createView(
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:mode:purchaseHandler:)' part of global actor 'MainActor'
 68 |         for offering: Offering,
 69 |         template: PaywallTemplate,
    :
 82 |
 83 |         case let .failure(error):
 84 |             DefaultPaywallView(
    |             `- warning: call to main actor-isolated initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |                 handler: purchaseHandler,
 86 |                 warning: .from(error: error),
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DefaultPaywall/DefaultPaywallView.swift:27:5: note: calls to initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' from outside of its actor context are implicitly asynchronous
 25 | struct DefaultPaywallView: View {
 26 |
 27 |     init(
    |     |- note: calls to initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'View'
 28 |         handler: PurchaseHandler,
 29 |         warning: PaywallWarning? = nil,
/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
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
132 |         switch template {
133 |         case .template1:
134 |             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
135 |         case .template2:
136 |             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: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
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
134 |             Template1View(configuration)
135 |         case .template2:
136 |             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
137 |         case .template3:
138 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:46:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 44 |     private var componentInteractionLogger
 45 |
 46 |     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'
 47 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 48 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:138:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
136 |             Template2View(configuration)
137 |         case .template3:
138 |             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
139 |         case .template4:
140 |             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:140:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
138 |             Template3View(configuration)
139 |         case .template4:
140 |             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
141 |         case .template5:
142 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:52:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 50 |     private var componentInteractionLogger
 51 |
 52 |     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'
 53 |         self.configuration = configuration
 54 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:142:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
140 |             Template4View(configuration)
141 |         case .template5:
142 |             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
143 |         case .template7:
144 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:51:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 49 |     private var componentInteractionLogger
 50 |
 51 |     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'
 52 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 53 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:144:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
142 |             Template5View(configuration)
143 |         case .template7:
144 |             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
145 |         }
146 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:66:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 64 |     }
 65 |
 66 |     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'
 67 |         guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
 68 |             fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:145: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
143 |
144 | struct HeightPreferenceKey: PreferenceKey {
145 |     static var defaultValue: CGFloat = 0
    |                |- 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
146 |     static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
147 |         value = max(value, nextValue())
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:429:20: warning: main actor-isolated property 'isPaused' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
196 |     @State private var autoTimer: Timer?
197 |
198 |     @State private var isPaused: Bool = false
    |                        `- note: property declared here
199 |     @State private var pauseEndDate: Date?
200 |     @State private var isInitialized = false
    :
427 |             repeats: true
428 |         ) { _ in
429 |             guard !isPaused else {
    |                    `- warning: main actor-isolated property 'isPaused' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:431:39: warning: main actor-isolated property 'pauseEndDate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
197 |
198 |     @State private var isPaused: Bool = false
199 |     @State private var pauseEndDate: Date?
    |                        `- note: property declared here
200 |     @State private var isInitialized = false
201 |
    :
429 |             guard !isPaused else {
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
    |                                       `- warning: main actor-isolated property 'pauseEndDate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
432 |                     isPaused = false // Resume auto-play
433 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:432:21: warning: main actor-isolated property 'isPaused' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
196 |     @State private var autoTimer: Timer?
197 |
198 |     @State private var isPaused: Bool = false
    |                        `- note: mutation of this property is only permitted within the actor
199 |     @State private var pauseEndDate: Date?
200 |     @State private var isInitialized = false
    :
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
432 |                     isPaused = false // Resume auto-play
    |                     `- warning: main actor-isolated property 'isPaused' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
433 |                 }
434 |                 return
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:441:21: warning: main actor-isolated property 'opacity' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
204 |
205 |     /// Used to animate opacity for the loop transition
206 |     @State private var opacity: CGFloat = 1.0
    |                        `- note: mutation of this property is only permitted within the actor
207 |
208 |     // MARK: - Init
    :
439 |                 // Fade out both slide + indicator
440 |                 withAnimation(.easeInOut(duration: fadeDuration)) {
441 |                     opacity = 0
    |                     `- warning: main actor-isolated property 'opacity' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
442 |                 }
443 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:458:21: warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
456 |             case .slide:
457 |                 withAnimation(.easeInOut(duration: Double(msTransitionTime) / 1000)) {
458 |                     index += 1
    |                     `- warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
459 |                     if loop {
460 |                         expandDataIfNeeded()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:460:25: warning: call to main actor-isolated instance method 'expandDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
458 |                     index += 1
459 |                     if loop {
460 |                         expandDataIfNeeded()
    |                         `- warning: call to main actor-isolated instance method 'expandDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
461 |                         pruneDataIfNeeded()
462 |                     } else {
    :
542 |     // MARK: - Expanding
543 |
544 |     private func expandDataIfNeeded() {
    |                  |- note: calls to instance method 'expandDataIfNeeded()' from outside of its actor context are implicitly asynchronous
    |                  `- note: main actor isolation inferred from conformance to protocol 'View'
545 |         // If index is in the first copy, prepend another
546 |         if index < originalCount {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:461:25: warning: call to main actor-isolated instance method 'pruneDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
459 |                     if loop {
460 |                         expandDataIfNeeded()
461 |                         pruneDataIfNeeded()
    |                         `- warning: call to main actor-isolated instance method 'pruneDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    :
561 |     // MARK: - Pruning
562 |
563 |     private func pruneDataIfNeeded() {
    |                  |- note: calls to instance method 'pruneDataIfNeeded()' from outside of its actor context are implicitly asynchronous
    |                  `- note: main actor isolation inferred from conformance to protocol 'View'
564 |         let copiesInData = data.count / originalCount
565 |         let maxCopiesAllowed = 5
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:25: warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                         `- warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:37: warning: main actor-isolated property 'index' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: property declared here
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                                     `- warning: main actor-isolated property 'index' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:44: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
181 |
182 |     /// The “expanded” data array, each item with a unique ID.
183 |     @State private var data: [CarouselItem<Content>] = []
    |                        `- note: property declared here
184 |
185 |     /// The current index (in `data`) of the "active" page.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                                            `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:233:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
231 |     func withPendingPurchaseContinuation<T>(_ continuation: () async throws -> T) async rethrows -> T {
232 |         await MainActor.run {
233 |             startAction(.pendingPurchaseContinuation)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
234 |         }
235 |         let result = try await continuation()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:237:16: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
235 |         let result = try await continuation()
236 |         await MainActor.run {
237 |             if actionTypeInProgress == .pendingPurchaseContinuation {
    |                |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
238 |                 self.actionTypeInProgress = nil
239 |             }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:398:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
396 |         }
397 |
398 |         async let fetchResultTask = self.purchases.workflow(forOfferingIdentifier: identifier)
    |                                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
399 |         async let allOfferingsTask = self.purchases.offerings()
400 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:399:38: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
397 |
398 |         async let fetchResultTask = self.purchases.workflow(forOfferingIdentifier: identifier)
399 |         async let allOfferingsTask = self.purchases.offerings()
    |                                      |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
400 |
401 |         let (fetchResult, allOfferings) = try await (fetchResultTask, allOfferingsTask)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:569:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
567 |         switch self.purchases.purchasesAreCompletedBy {
568 |         case .revenueCat:
569 |             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
570 |         case .myApp:
571 |             return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:571:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
569 |             return try await performRestorePurchases()
570 |         case .myApp:
571 |             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
572 |         }
573 |     }
/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 |         switch template {
133 |         case .template1:
134 |             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
135 |         case .template2:
136 |             Template2View(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 |             Template1View(configuration)
135 |         case .template2:
136 |             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
137 |         case .template3:
138 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:138:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
136 |             Template2View(configuration)
137 |         case .template3:
138 |             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
139 |         case .template4:
140 |             Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:140:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
138 |             Template3View(configuration)
139 |         case .template4:
140 |             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
141 |         case .template5:
142 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:142:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
140 |             Template4View(configuration)
141 |         case .template5:
142 |             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
143 |         case .template7:
144 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:144:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
142 |             Template5View(configuration)
143 |         case .template7:
144 |             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
145 |         }
146 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:84:13: warning: sending 'purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
 82 |
 83 |         case let .failure(error):
 84 |             DefaultPaywallView(
    |             |- warning: sending 'purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: sending task-isolated 'purchaseHandler' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 85 |                 handler: purchaseHandler,
 86 |                 warning: .from(error: error),
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:149:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
147 |         if let interceptor = self.restoreInitiatedAction {
148 |             Logger.debug(Strings.restore_purchases_gate_start)
149 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated value of non-Sendable type '() async -> Bool' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
150 |                 await withCheckedContinuation { continuation in
151 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:149:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
147 |         if let interceptor = self.restoreInitiatedAction {
148 |             Logger.debug(Strings.restore_purchases_gate_start)
149 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
150 |                 await withCheckedContinuation { continuation in
151 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:162:70: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
160 |         Logger.debug(Strings.restoring_purchases)
161 |
162 |         let (customerInfo, success) = try await self.purchaseHandler.restorePurchases()
    |                                                                      |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                      `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
163 |         if success {
164 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:198:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
196 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
197 |             // Wait for the interceptor to call resume before proceeding
198 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated value of non-Sendable type '() async -> Bool' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
199 |                 await withCheckedContinuation { continuation in
200 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:198:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
196 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
197 |             // Wait for the interceptor to call resume before proceeding
198 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
199 |                 await withCheckedContinuation { continuation in
200 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:65:14: warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 63 |     deinit {
 64 |         // Not calling stop because of async needed
 65 |         timer?.connect().cancel()
    |              `- warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 66 |         timer = nil
 67 |         cancellable = nil
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:66:15: warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 64 |         // Not calling stop because of async needed
 65 |         timer?.connect().cancel()
 66 |         timer = nil
    |               `- warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 67 |         cancellable = nil
 68 |     }
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:67:21: warning: cannot access property 'cancellable' with a non-sendable type 'AnyCancellable?' from nonisolated deinit; this is an error in the Swift 6 language mode
 65 |         timer?.connect().cancel()
 66 |         timer = nil
 67 |         cancellable = nil
    |                     `- warning: cannot access property 'cancellable' with a non-sendable type 'AnyCancellable?' from nonisolated deinit; this is an error in the Swift 6 language mode
 68 |     }
 69 |
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
  6 | //
  7 |
  8 | import Combine
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
  9 | import Foundation
 10 | @_spi(Internal) import RevenueCat
[1219/1219] Compiling RevenueCatUI HeaderComponentView.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:155:23: warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package, Optional<PromotionalOffer>, Optional<PaywallEvent>) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package, Optional<PromotionalOffer>, Optional<PaywallEvent>) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)') in a '@Sendable' closure; this is an error in the Swift 6 language mode
153 |             preferredLocaleOverride: self.preferredLocaleOverride
154 |         ) { package, promotionalOffer, paywallEvent in
155 |             try await purchase({ pkg, offer, event in
    |                       |- warning: capture of 'purchase' with non-sendable type '(@escaping MockPurchases.PurchaseBlock) -> MockPurchases.PurchaseBlock' (aka '(@escaping @Sendable (Package, Optional<PromotionalOffer>, Optional<PaywallEvent>) async throws -> (transaction: Optional<StoreTransaction>, customerInfo: CustomerInfo, userCancelled: Bool)) -> @Sendable (Package, Optional<PromotionalOffer>, Optional<PaywallEvent>) 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'
156 |                 try await self.purchase(package: pkg, promotionalOffer: offer, paywallEvent: event)
157 |             })(package, promotionalOffer, paywallEvent)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:159: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
157 |             })(package, promotionalOffer, paywallEvent)
158 |         } restorePurchases: {
159 |             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'
160 |         } trackEvent: { event in
161 |             await self.track(paywallEvent: event)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/MockPurchases.swift:188: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
186 |             try await self.restorePurchases()
187 |         } trackEvent: { event in
188 |             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'
189 |         } customerInfo: {
190 |             try await self.customerInfo()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PaywallEventTracker.swift:244:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'ComponentInteractionLogger' may have shared mutable state; this is an error in the Swift 6 language mode
224 | /// Lightweight wrapper so views can emit control interaction events without depending on the full `PurchaseHandler`.
225 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
226 | struct ComponentInteractionLogger {
    |        `- note: consider making struct 'ComponentInteractionLogger' conform to the 'Sendable' protocol
227 |
228 |     private let action: (PaywallEvent.ComponentInteractionData) -> Bool
    :
242 | @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
243 | struct ComponentInteractionLoggerKey: EnvironmentKey {
244 |     static let defaultValue: ComponentInteractionLogger = .init()
    |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'ComponentInteractionLogger' 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
245 | }
246 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:843: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
841 | struct PurchaseInProgressPreferenceKey: PreferenceKey {
842 |
843 |     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
844 |
845 |     static func reduce(value: inout Package?, nextValue: () -> Package?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:854: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
852 | struct RestoreInProgressPreferenceKey: PreferenceKey {
853 |
854 |     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
855 |
856 |     static func reduce(value: inout Bool, nextValue: () -> Bool) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:882: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
880 |     }
881 |
882 |     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
883 |
884 |     static func reduce(value: inout PurchaseResult?, nextValue: () -> PurchaseResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:893: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
891 | struct RestoredCustomerInfoPreferenceKey: PreferenceKey {
892 |
893 |     static var defaultValue: PurchaseHandler.RestoreResult?
    |                |- 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
894 |
895 |     static func reduce(value: inout PurchaseHandler.RestoreResult?, nextValue: () -> PurchaseHandler.RestoreResult?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:904: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
902 | struct PurchaseErrorPreferenceKey: PreferenceKey {
903 |
904 |     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
905 |
906 |     static func reduce(value: inout NSError?, nextValue: () -> NSError?) {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:915: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
913 | struct RestoreErrorPreferenceKey: PreferenceKey {
914 |
915 |     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
916 |
917 |     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:927: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
925 | /// `EnvironmentKey` for storing closure triggered when paywall should be dismissed.
926 | struct RequestedDismissalKey: EnvironmentKey {
927 |     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
928 | }
929 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78: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
 65 |
 66 |     @ViewBuilder // swiftlint:disable:next function_parameter_count
 67 |     func createView(
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:mode:purchaseHandler:)' part of global actor 'MainActor'
 68 |         for offering: Offering,
 69 |         template: PaywallTemplate,
    :
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
    :
152 | extension View {
153 |
154 |     func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
    |          `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
155 |         self
156 |             .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:80:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 78 |                 .adaptTemplateView(with: configuration)
 79 |                 .task(id: offering) {
 80 |                     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
 81 |                 }
 82 |
/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:84:13: warning: call to main actor-isolated initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |
 66 |     @ViewBuilder // swiftlint:disable:next function_parameter_count
 67 |     func createView(
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:mode:purchaseHandler:)' part of global actor 'MainActor'
 68 |         for offering: Offering,
 69 |         template: PaywallTemplate,
    :
 82 |
 83 |         case let .failure(error):
 84 |             DefaultPaywallView(
    |             `- warning: call to main actor-isolated initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |                 handler: purchaseHandler,
 86 |                 warning: .from(error: error),
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DefaultPaywall/DefaultPaywallView.swift:27:5: note: calls to initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' from outside of its actor context are implicitly asynchronous
 25 | struct DefaultPaywallView: View {
 26 |
 27 |     init(
    |     |- note: calls to initializer 'init(handler:warning:offering:appName:iconDetailProvider:isFooterPaywall:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'View'
 28 |         handler: PurchaseHandler,
 29 |         warning: PaywallWarning? = nil,
/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
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
132 |         switch template {
133 |         case .template1:
134 |             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
135 |         case .template2:
136 |             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: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
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
134 |             Template1View(configuration)
135 |         case .template2:
136 |             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
137 |         case .template3:
138 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:46:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 44 |     private var componentInteractionLogger
 45 |
 46 |     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'
 47 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 48 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:138:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
136 |             Template2View(configuration)
137 |         case .template3:
138 |             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
139 |         case .template4:
140 |             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:140:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
138 |             Template3View(configuration)
139 |         case .template4:
140 |             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
141 |         case .template5:
142 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:52:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 50 |     private var componentInteractionLogger
 51 |
 52 |     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'
 53 |         self.configuration = configuration
 54 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:142:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
140 |             Template4View(configuration)
141 |         case .template5:
142 |             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
143 |         case .template7:
144 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:51:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 49 |     private var componentInteractionLogger
 50 |
 51 |     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'
 52 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 53 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:144:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |
126 |     @ViewBuilder
127 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
128 |                                    configuration: TemplateViewConfiguration) -> some View {
129 |         #if os(watchOS)
    :
142 |             Template5View(configuration)
143 |         case .template7:
144 |             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
145 |         }
146 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:66:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 64 |     }
 65 |
 66 |     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'
 67 |         guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
 68 |             fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:145: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
143 |
144 | struct HeightPreferenceKey: PreferenceKey {
145 |     static var defaultValue: CGFloat = 0
    |                |- 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
146 |     static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
147 |         value = max(value, nextValue())
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:429:20: warning: main actor-isolated property 'isPaused' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
196 |     @State private var autoTimer: Timer?
197 |
198 |     @State private var isPaused: Bool = false
    |                        `- note: property declared here
199 |     @State private var pauseEndDate: Date?
200 |     @State private var isInitialized = false
    :
427 |             repeats: true
428 |         ) { _ in
429 |             guard !isPaused else {
    |                    `- warning: main actor-isolated property 'isPaused' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:431:39: warning: main actor-isolated property 'pauseEndDate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
197 |
198 |     @State private var isPaused: Bool = false
199 |     @State private var pauseEndDate: Date?
    |                        `- note: property declared here
200 |     @State private var isInitialized = false
201 |
    :
429 |             guard !isPaused else {
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
    |                                       `- warning: main actor-isolated property 'pauseEndDate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
432 |                     isPaused = false // Resume auto-play
433 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:432:21: warning: main actor-isolated property 'isPaused' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
196 |     @State private var autoTimer: Timer?
197 |
198 |     @State private var isPaused: Bool = false
    |                        `- note: mutation of this property is only permitted within the actor
199 |     @State private var pauseEndDate: Date?
200 |     @State private var isInitialized = false
    :
430 |                 // If paused, check if 10 seconds have passed
431 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
432 |                     isPaused = false // Resume auto-play
    |                     `- warning: main actor-isolated property 'isPaused' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
433 |                 }
434 |                 return
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:441:21: warning: main actor-isolated property 'opacity' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
204 |
205 |     /// Used to animate opacity for the loop transition
206 |     @State private var opacity: CGFloat = 1.0
    |                        `- note: mutation of this property is only permitted within the actor
207 |
208 |     // MARK: - Init
    :
439 |                 // Fade out both slide + indicator
440 |                 withAnimation(.easeInOut(duration: fadeDuration)) {
441 |                     opacity = 0
    |                     `- warning: main actor-isolated property 'opacity' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
442 |                 }
443 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:458:21: warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
456 |             case .slide:
457 |                 withAnimation(.easeInOut(duration: Double(msTransitionTime) / 1000)) {
458 |                     index += 1
    |                     `- warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
459 |                     if loop {
460 |                         expandDataIfNeeded()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:460:25: warning: call to main actor-isolated instance method 'expandDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
458 |                     index += 1
459 |                     if loop {
460 |                         expandDataIfNeeded()
    |                         `- warning: call to main actor-isolated instance method 'expandDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
461 |                         pruneDataIfNeeded()
462 |                     } else {
    :
542 |     // MARK: - Expanding
543 |
544 |     private func expandDataIfNeeded() {
    |                  |- note: calls to instance method 'expandDataIfNeeded()' from outside of its actor context are implicitly asynchronous
    |                  `- note: main actor isolation inferred from conformance to protocol 'View'
545 |         // If index is in the first copy, prepend another
546 |         if index < originalCount {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:461:25: warning: call to main actor-isolated instance method 'pruneDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
459 |                     if loop {
460 |                         expandDataIfNeeded()
461 |                         pruneDataIfNeeded()
    |                         `- warning: call to main actor-isolated instance method 'pruneDataIfNeeded()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    :
561 |     // MARK: - Pruning
562 |
563 |     private func pruneDataIfNeeded() {
    |                  |- note: calls to instance method 'pruneDataIfNeeded()' from outside of its actor context are implicitly asynchronous
    |                  `- note: main actor isolation inferred from conformance to protocol 'View'
564 |         let copiesInData = data.count / originalCount
565 |         let maxCopiesAllowed = 5
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:25: warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                         `- warning: main actor-isolated property 'index' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:37: warning: main actor-isolated property 'index' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
184 |
185 |     /// The current index (in `data`) of the "active" page.
186 |     @State private var index: Int = 0
    |                        `- note: property declared here
187 |
188 |     /// Real-time drag offset from the user's finger.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                                     `- warning: main actor-isolated property 'index' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:463:44: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
181 |
182 |     /// The “expanded” data array, each item with a unique ID.
183 |     @State private var data: [CarouselItem<Content>] = []
    |                        `- note: property declared here
184 |
185 |     /// The current index (in `data`) of the "active" page.
    :
461 |                         pruneDataIfNeeded()
462 |                     } else {
463 |                         index = min(index, data.count - 1)
    |                                            `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |                     }
465 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:233:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
231 |     func withPendingPurchaseContinuation<T>(_ continuation: () async throws -> T) async rethrows -> T {
232 |         await MainActor.run {
233 |             startAction(.pendingPurchaseContinuation)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
234 |         }
235 |         let result = try await continuation()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:237:16: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
235 |         let result = try await continuation()
236 |         await MainActor.run {
237 |             if actionTypeInProgress == .pendingPurchaseContinuation {
    |                |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
238 |                 self.actionTypeInProgress = nil
239 |             }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:398:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
396 |         }
397 |
398 |         async let fetchResultTask = self.purchases.workflow(forOfferingIdentifier: identifier)
    |                                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
399 |         async let allOfferingsTask = self.purchases.offerings()
400 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:399:38: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
397 |
398 |         async let fetchResultTask = self.purchases.workflow(forOfferingIdentifier: identifier)
399 |         async let allOfferingsTask = self.purchases.offerings()
    |                                      |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
400 |
401 |         let (fetchResult, allOfferings) = try await (fetchResultTask, allOfferingsTask)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:569:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
567 |         switch self.purchases.purchasesAreCompletedBy {
568 |         case .revenueCat:
569 |             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
570 |         case .myApp:
571 |             return try await performExternalRestoreLogic()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Purchasing/PurchaseHandler.swift:571:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
569 |             return try await performRestorePurchases()
570 |         case .myApp:
571 |             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
572 |         }
573 |     }
/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 |         switch template {
133 |         case .template1:
134 |             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
135 |         case .template2:
136 |             Template2View(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 |             Template1View(configuration)
135 |         case .template2:
136 |             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
137 |         case .template3:
138 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:138:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
136 |             Template2View(configuration)
137 |         case .template3:
138 |             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
139 |         case .template4:
140 |             Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:140:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
138 |             Template3View(configuration)
139 |         case .template4:
140 |             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
141 |         case .template5:
142 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:142:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
140 |             Template4View(configuration)
141 |         case .template5:
142 |             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
143 |         case .template7:
144 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:144:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
142 |             Template5View(configuration)
143 |         case .template7:
144 |             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
145 |         }
146 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:78:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
 76 |         case let .success(configuration):
 77 |             Self.createView(template: template, configuration: configuration)
 78 |                 .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
 79 |                 .task(id: offering) {
 80 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:84:13: warning: sending 'purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
 82 |
 83 |         case let .failure(error):
 84 |             DefaultPaywallView(
    |             |- warning: sending 'purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: sending task-isolated 'purchaseHandler' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 85 |                 handler: purchaseHandler,
 86 |                 warning: .from(error: error),
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:149:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
147 |         if let interceptor = self.restoreInitiatedAction {
148 |             Logger.debug(Strings.restore_purchases_gate_start)
149 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated value of non-Sendable type '() async -> Bool' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
150 |                 await withCheckedContinuation { continuation in
151 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:149:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
147 |         if let interceptor = self.restoreInitiatedAction {
148 |             Logger.debug(Strings.restore_purchases_gate_start)
149 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
150 |                 await withCheckedContinuation { continuation in
151 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:162:70: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
160 |         Logger.debug(Strings.restoring_purchases)
161 |
162 |         let (customerInfo, success) = try await self.purchaseHandler.restorePurchases()
    |                                                                      |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                      `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
163 |         if success {
164 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:198:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
196 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
197 |             // Wait for the interceptor to call resume before proceeding
198 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated value of non-Sendable type '() async -> Bool' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
199 |                 await withCheckedContinuation { continuation in
200 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:198:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
196 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
197 |             // Wait for the interceptor to call resume before proceeding
198 |             let result = await self.purchaseHandler.withPendingPurchaseContinuation {
    |                                                     |- warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                                                     `- note: sending main actor-isolated 'self.purchaseHandler' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
199 |                 await withCheckedContinuation { continuation in
200 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:65:14: warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 63 |     deinit {
 64 |         // Not calling stop because of async needed
 65 |         timer?.connect().cancel()
    |              `- warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 66 |         timer = nil
 67 |         cancellable = nil
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:66:15: warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 64 |         // Not calling stop because of async needed
 65 |         timer?.connect().cancel()
 66 |         timer = nil
    |               `- warning: cannot access property 'timer' with a non-sendable type 'Timer.TimerPublisher?' from nonisolated deinit; this is an error in the Swift 6 language mode
 67 |         cancellable = nil
 68 |     }
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:67:21: warning: cannot access property 'cancellable' with a non-sendable type 'AnyCancellable?' from nonisolated deinit; this is an error in the Swift 6 language mode
 65 |         timer?.connect().cancel()
 66 |         timer = nil
 67 |         cancellable = nil
    |                     `- warning: cannot access property 'cancellable' with a non-sendable type 'AnyCancellable?' from nonisolated deinit; this is an error in the Swift 6 language mode
 68 |     }
 69 |
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
  6 | //
  7 |
  8 | import Combine
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
  9 | import Foundation
 10 | @_spi(Internal) import RevenueCat
Build complete! (89.37s)
Fetching https://github.com/quick/nimble
Fetching https://github.com/pointfreeco/swift-snapshot-testing from cache
[1/19823] Fetching nimble
Fetched https://github.com/quick/nimble from cache (37.99s)
Fetched https://github.com/pointfreeco/swift-snapshot-testing from cache (38.02s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing
Computed https://github.com/pointfreeco/swift-snapshot-testing at 1.18.9 (38.60s)
Fetching https://github.com/pointfreeco/swift-custom-dump from cache
Fetching https://github.com/swiftlang/swift-syntax from cache
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (1.00s)
Fetched https://github.com/swiftlang/swift-syntax from cache (1.94s)
Computing version for https://github.com/quick/nimble
Computed https://github.com/quick/nimble at 13.7.1 (2.49s)
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
[1/1257] Fetching cwlpreconditiontesting
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (2.95s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.2.2 (3.52s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
[1/460] Fetching cwlcatchexception
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (1.75s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.2.1 (2.33s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 1.5.0 (0.45s)
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.64s)
Computing version for https://github.com/swiftlang/swift-syntax
Computed https://github.com/swiftlang/swift-syntax at 602.0.0 (1.53s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 1.9.0 (0.60s)
Creating working copy for https://github.com/mattgallagher/CwlPreconditionTesting.git
Working copy of https://github.com/mattgallagher/CwlPreconditionTesting.git resolved at 2.2.2
Creating working copy for https://github.com/pointfreeco/swift-custom-dump
Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 1.5.0
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 1.9.0
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing
Working copy of https://github.com/pointfreeco/swift-snapshot-testing resolved at 1.18.9
Creating working copy for https://github.com/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.2.1
Creating working copy for https://github.com/swiftlang/swift-syntax
Working copy of https://github.com/swiftlang/swift-syntax resolved at 602.0.0
Creating working copy for https://github.com/quick/nimble
Working copy of https://github.com/quick/nimble resolved at 13.7.1
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/Templates/__Snapshots__': File not found.
warning: 'spi-builder-workspace': ignoring broken symlink /Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/PaywallsV2/__PreviewResources__
warning: 'spi-builder-workspace': Invalid Resource 'PaywallsV2/__PreviewResources__': File not found.
warning: 'nimble': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/nimble/Sources/Nimble/PrivacyInfo.xcprivacy
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
    {
      "identity" : "nimble",
      "requirement" : {
        "exact" : [
          "13.7.1"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/quick/nimble"
    },
    {
      "identity" : "swift-snapshot-testing",
      "requirement" : {
        "exact" : [
          "1.18.9"
        ]
      },
      "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" : [
        "Ads/AdTracker.swift",
        "Ads/AdsAPI.swift",
        "Ads/Events/AdEvent.swift",
        "Ads/Events/AdEventStore.swift",
        "Ads/Events/Networking/AdEventsRequest.swift",
        "Ads/Events/Networking/AdHTTPRequestPath.swift",
        "Ads/Events/Networking/PostAdEventsOperation.swift",
        "Ads/Events/StoredAdEvent.swift",
        "Ads/Events/StoredAdEventSerializer.swift",
        "Ads/RewardVerification/Networking/GetRewardVerificationStatusOperation.swift",
        "Ads/RewardVerification/Networking/RewardVerificationStatusCallback.swift",
        "Ads/RewardVerification/Networking/RewardVerificationStatusResponse.swift",
        "Ads/RewardVerification/RewardVerificationPollStatus.swift",
        "Ads/RewardVerification/VerifiedReward.swift",
        "Ads/RewardVerification/VirtualCurrencyReward.swift",
        "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/Checksum.swift",
        "Caching/DeviceCache.swift",
        "Caching/DirectoryHelper.swift",
        "Caching/FileRepository.swift",
        "Caching/InMemoryCachedObject.swift",
        "Caching/KeyedDeferredValueStore.swift",
        "Caching/LargeItemCacheType.swift",
        "Caching/URLWithValidation.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/Networking/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/EventsManager.swift",
        "Events/FeatureEvents/FeatureEvent.swift",
        "Events/FeatureEvents/FeatureEventStore.swift",
        "Events/FeatureEvents/Networking/FeatureEventHTTPRequestPath.swift",
        "Events/FeatureEvents/Networking/FeatureEventsRequest.swift",
        "Events/FeatureEvents/Networking/PostFeatureEventsOperation.swift",
        "Events/FeatureEvents/StoredFeatureEvent.swift",
        "Events/FeatureEvents/StoredFeatureEventSerializer.swift",
        "Events/Networking/EventsHTTPRequestPath.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/CacheStrings.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/EventsManagerStrings.swift",
        "Logging/Strings/FileRepositoryStrings.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/TransactionMetadataStrings.swift",
        "Logging/Strings/VirtualCurrencyStrings.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/SynchronizedLargeItemCache.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/IsPurchaseAllowedByRestoreBehaviorCallback.swift",
        "Networking/Caching/LogInCallback.swift",
        "Networking/Caching/OfferingsCallback.swift",
        "Networking/Caching/ProductEntitlementMappingCallback.swift",
        "Networking/Caching/VirtualCurrenciesCallback.swift",
        "Networking/Caching/WebBillingProductsCallback.swift",
        "Networking/Caching/WebOfferingProductsCallback.swift",
        "Networking/Caching/WorkflowsCallback.swift",
        "Networking/ConnectionErrorReason.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/HTTPRequestTimeoutManager.swift",
        "Networking/HTTPClient/HTTPResponse.swift",
        "Networking/HTTPClient/HTTPResponseBody.swift",
        "Networking/HTTPClient/HTTPStatusCode.swift",
        "Networking/HTTPClient/NetworkError.swift",
        "Networking/HTTPClient/RedirectLoggerTaskDelegate.swift",
        "Networking/HTTPClient/SimpleNetworkServiceType.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/GetVirtualCurrenciesOperation.swift",
        "Networking/Operations/GetWebBillingProductsOperation.swift",
        "Networking/Operations/GetWebOfferingProductsOperation.swift",
        "Networking/Operations/GetWorkflowOperation.swift",
        "Networking/Operations/Handling/CustomerInfoResponseHandler.swift",
        "Networking/Operations/HealthOperation.swift",
        "Networking/Operations/HealthReportAvailabilityOperation.swift",
        "Networking/Operations/HealthReportOperation.swift",
        "Networking/Operations/LogInOperation.swift",
        "Networking/Operations/NetworkOperation.swift",
        "Networking/Operations/PostAdServicesTokenOperation.swift",
        "Networking/Operations/PostAttributionDataOperation.swift",
        "Networking/Operations/PostIsPurchaseAllowedByRestoreBehaviorOperation.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/HealthReportAvailabilityResponse.swift",
        "Networking/Responses/HealthReportResponse.swift",
        "Networking/Responses/IsPurchaseAllowedByRestoreBehaviorResponse.swift",
        "Networking/Responses/OfferingsResponse.swift",
        "Networking/Responses/PostOfferResponse.swift",
        "Networking/Responses/ProductEntitlementMappingResponse.swift",
        "Networking/Responses/RevenueCatUI/PaywallComponentsData.swift",
        "Networking/Responses/RevenueCatUI/UIConfig.swift",
        "Networking/Responses/VirtualCurrenciesResponse.swift",
        "Networking/Responses/WebBillingProductsResponse.swift",
        "Networking/Responses/WebOfferingProductsResponse.swift",
        "Networking/Responses/WorkflowsResponse.swift",
        "Networking/VirtualCurrenciesAPI.swift",
        "Networking/WebBillingAPI.swift",
        "Networking/WebBillingHTTPRequestPath.swift",
        "Networking/Workflows/WorkflowDetailProcessor.swift",
        "Networking/Workflows/WorkflowResponseAction.swift",
        "Networking/WorkflowsAPI.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/PaywallCountdownComponent.swift",
        "Paywalls/Components/PaywallHeaderComponent.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/Components/PaywallVideoComponent.swift",
        "Paywalls/Components/Transitions/PaywallAnimation.swift",
        "Paywalls/Components/Transitions/PaywallTransition.swift",
        "Paywalls/Events/CustomPaywallEvent.swift",
        "Paywalls/Events/CustomPaywallImpressionParams.swift",
        "Paywalls/Events/Networking/EventsRequest+CustomPaywallImpression.swift",
        "Paywalls/Events/Networking/EventsRequest+Paywall.swift",
        "Paywalls/Events/PaywallEvent.swift",
        "Paywalls/ExitOffer.swift",
        "Paywalls/Locale+Comparison.swift",
        "Paywalls/PaywallCacheWarming.swift",
        "Paywalls/PaywallColor.swift",
        "Paywalls/PaywallData+Localization.swift",
        "Paywalls/PaywallData.swift",
        "Paywalls/PaywallFontManagerType.swift",
        "Paywalls/PaywallSource.swift",
        "Paywalls/PaywallViewMode.swift",
        "Paywalls/SubscriptionHistoryTracker.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/ProductsManagerFactory.swift",
        "Purchasing/ProductsManagerType.swift",
        "Purchasing/ProductsRequestFactory.swift",
        "Purchasing/PurchaseOwnershipType.swift",
        "Purchasing/Purchases/Attribution.swift",
        "Purchasing/Purchases/LocalTransactionMetadata.swift",
        "Purchasing/Purchases/LocalTransactionMetadataStore.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/TransactionMetadataSyncHelper.swift",
        "Purchasing/Purchases/TransactionNotifications.swift",
        "Purchasing/Purchases/TransactionPoster.swift",
        "Purchasing/ReceiptFetcher.swift",
        "Purchasing/ReceiptRefreshPolicy.swift",
        "Purchasing/SimulatedStore/SimulatedStoreProduct.swift",
        "Purchasing/SimulatedStore/SimulatedStoreProductsManager.swift",
        "Purchasing/SimulatedStore/SimulatedStorePurchaseHandler.swift",
        "Purchasing/SimulatedStore/SimulatedStorePurchaseUI.swift",
        "Purchasing/SimulatedStore/SimulatedStoreTransaction.swift",
        "Purchasing/SimulatedStore/WebBillingProduct+SimulatedStoreProduct.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/StoreKit2PromotionalOfferPurchaseOptions.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/TestStoreTransaction.swift",
        "Purchasing/StoreKitAbstractions/TransactionReason.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+Appstack.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/PaymentAuthorizationProvider.swift",
        "Support/PaywallExtensions.swift",
        "Support/PurchasesDiagnostics.swift",
        "Support/SDKHealthError+CustomNSError.swift",
        "Support/SDKHealthManager.swift",
        "Support/StoreMessageType.swift",
        "Support/StoreMessagesHelper.swift",
        "Support/SwiftVersionCheck.swift",
        "Virtual Currencies/VirtualCurrencies.swift",
        "Virtual Currencies/VirtualCurrency.swift",
        "Virtual Currencies/VirtualCurrencyManager.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" : [
        "AppStyleExtractorTests.swift",
        "BaseSnapshotTest.swift",
        "CustomerCenter/BaseManageSubscriptionViewModelTests.swift",
        "CustomerCenter/ContactSupportUtilitiesTests.swift",
        "CustomerCenter/CreateTicketViewTests.swift",
        "CustomerCenter/CustomActionDataTests.swift",
        "CustomerCenter/CustomerCenterActionWrapperTests.swift",
        "CustomerCenter/CustomerCenterViewModelTests.swift",
        "CustomerCenter/DiscountsHandlerTests.swift",
        "CustomerCenter/EmailValidatorTests.swift",
        "CustomerCenter/FeedbackSurveyViewModelTests.swift",
        "CustomerCenter/PromotionalOfferViewModelTests.swift",
        "CustomerCenter/PromotionalOfferViewTests.swift",
        "CustomerCenter/PurchaseCardViewBadgeTests.swift",
        "CustomerCenter/PurchaseInformationTests.swift",
        "CustomerCenter/SubscriptionDetailViewModelTests.swift",
        "CustomerCenter/VirtualCurrencyBalancesScreenViewModelTests.swift",
        "Data/LocalizedAlertErrorTests.swift",
        "Data/PackageVariablesTests.swift",
        "Data/PaywallDataValidationTests.swift",
        "Data/PaywallViewConfigurationTests.swift",
        "Data/SemanticVersionTests.swift",
        "Data/TemplateViewConfigurationTests.swift",
        "Data/VariablesTests.swift",
        "Helpers/AsyncTestHelpers.swift",
        "Helpers/AvailabilityChecks.swift",
        "Helpers/ColorComputationHelpersTests.swift",
        "Helpers/CurrentTestCaseTracker.swift",
        "Helpers/DataExtensions.swift",
        "Helpers/ImageSnapshot.swift",
        "Helpers/OSVersionEquivalent.swift",
        "Helpers/PaywallEventTrackerTestDispatcher.swift",
        "Helpers/SnapshotTesting+Extensions.swift",
        "Helpers/TestCase.swift",
        "Helpers/TestLogHandler.swift",
        "ImageLoaderTests.swift",
        "LocalizationTests.swift",
        "Mocks/MockStoreProductDiscount.swift",
        "Mocks/MockTransaction.swift",
        "PaywallFooterTests.swift",
        "PaywallViewEventsTests.swift",
        "PaywallsV2/CarouselStateTests.swift",
        "PaywallsV2/CarouselTabSwitchTests.swift",
        "PaywallsV2/ConditionDeserializationTests.swift",
        "PaywallsV2/FileImageLoaderTests.swift",
        "PaywallsV2/LocaleFinderTests.swift",
        "PaywallsV2/PackageComponentViewTests.swift",
        "PaywallsV2/PackageValidatorTests.swift",
        "PaywallsV2/PaywallPreviewResourcesLoader.swift",
        "PaywallsV2/PresentedPartialsTests.swift",
        "PaywallsV2/TabsPackageInheritanceTests.swift",
        "PaywallsV2/TabsPackageSelectionResolverTests.swift",
        "PaywallsV2/TakeScreenshot.swift",
        "PaywallsV2/TextComponentLocalizationTests.swift",
        "PaywallsV2/ToPresentedOverridesTests.swift",
        "PaywallsV2/UIConfigProviderTests.swift",
        "PaywallsV2/VariableHandlerV2Tests.swift",
        "PaywallsV2/VideoAutoplayHandlerTests.swift",
        "PaywallsV2/ViewModelFactoryBadgeTests.swift",
        "PaywallsV2/ViewModelFactoryTests.swift",
        "PaywallsV2/WorkflowNavigatorTests.swift",
        "PaywallsV2/WorkflowPaywallViewTests.swift",
        "PaywallsV2/WorkflowScreenMapperTests.swift",
        "PresentIfNeededTests.swift",
        "PurchaseCompletedHandlerTests.swift",
        "Purchasing/ControlInteractionLoggerTests.swift",
        "Purchasing/MockStoreTransaction.swift",
        "Purchasing/PaywallEventTrackerTests.swift",
        "Purchasing/PurchaseHandlerTests.swift",
        "Purchasing/WorkflowContextTests.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",
        "Templates/TierSelectorComponentInteractionTests.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/Media.xcassets",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "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/az.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "az"
            }
          }
        },
        {
          "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/eu.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "eu"
            }
          }
        },
        {
          "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/sr.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "sr"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/sr_Latn.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "sr_latn"
            }
          }
        },
        {
          "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",
        "CrossPlatform/PlatformBezierPath.swift",
        "CrossPlatform/PlatformColor.swift",
        "CrossPlatform/PlatformFont.swift",
        "CrossPlatform/PlatformImage.swift",
        "CustomerCenter/Abstractions/CustomerCenterPurchasesType.swift",
        "CustomerCenter/Actions/CustomerCenterConfigData.HelpPath+PurchaseInformation.swift",
        "CustomerCenter/Actions/CustomerCenterView+Actions.swift",
        "CustomerCenter/ButtonStyles.swift",
        "CustomerCenter/ColorFromAppearance.swift",
        "CustomerCenter/ContactSupportUtilities.swift",
        "CustomerCenter/CustomerInfo+CurrentEntitlement.swift",
        "CustomerCenter/Data/CustomActionData.swift",
        "CustomerCenter/Data/CustomerCenterAction.swift",
        "CustomerCenter/Data/CustomerCenterActionViewModifier.swift",
        "CustomerCenter/Data/CustomerCenterActionWrapper.swift",
        "CustomerCenter/Data/CustomerCenterConfigData+Mock.swift",
        "CustomerCenter/Data/CustomerCenterEnvironment.swift",
        "CustomerCenter/Data/CustomerCenterError.swift",
        "CustomerCenter/Data/CustomerCenterManagementOption.swift",
        "CustomerCenter/Data/CustomerCenterPurchases.swift",
        "CustomerCenter/Data/DiscountsHandler.swift",
        "CustomerCenter/Data/EntitlementInfo+Extensions.swift",
        "CustomerCenter/Data/FeedbackSurveyData.swift",
        "CustomerCenter/Data/LoadPromotionalOfferUseCase.swift",
        "CustomerCenter/Data/PromotionalOfferData.swift",
        "CustomerCenter/Data/PurchaseInformation+Mock.swift",
        "CustomerCenter/Data/PurchaseInformation.swift",
        "CustomerCenter/Data/SemanticVersion.swift",
        "CustomerCenter/Data/StoreProductDiscount+CustomerCenter.swift",
        "CustomerCenter/Data/Transaction.swift",
        "CustomerCenter/Extensions/CustomerCenterConfigDataAppearance+Tint.swift",
        "CustomerCenter/Extensions/CustomerCenterConfigDataSupport+URL.swift",
        "CustomerCenter/Extensions/CustomerInfo+SeeAllPurchases.swift",
        "CustomerCenter/Extensions/PurchaseInformation+Creation.swift",
        "CustomerCenter/Mocks/MockCustomerCenterPurchases.swift",
        "CustomerCenter/Mocks/MockCustomerCenterStoreKitUtilities.swift",
        "CustomerCenter/Mocks/MockLoadPromotionalOfferUseCase.swift",
        "CustomerCenter/Mocks/PurchaseInformationFixtures.swift",
        "CustomerCenter/URLUtilities.swift",
        "CustomerCenter/Utilities/CustomerCenterLocalizationStrings.swift",
        "CustomerCenter/Utilities/CustomerCenterStoreKitUtilities.swift",
        "CustomerCenter/Utilities/CustomerCenterStoreKitUtilitiesType.swift",
        "CustomerCenter/Utilities/CustomerCenterStylingUtilities.swift",
        "CustomerCenter/Utilities/EmailValidator.swift",
        "CustomerCenter/Utilities/IdentifiableURL.swift",
        "CustomerCenter/View+PresentCustomerCenter.swift",
        "CustomerCenter/ViewModels/BaseManageSubscriptionViewModel.swift",
        "CustomerCenter/ViewModels/CustomerCenterViewModel.swift",
        "CustomerCenter/ViewModels/CustomerCenterViewState.swift",
        "CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift",
        "CustomerCenter/ViewModels/NoSubscriptionsCardViewModel.swift",
        "CustomerCenter/ViewModels/PromotionalOfferViewModel.swift",
        "CustomerCenter/ViewModels/PurchaseHistory/PurchaseDetailItem.swift",
        "CustomerCenter/ViewModels/PurchaseHistory/PurchaseDetailViewModel.swift",
        "CustomerCenter/ViewModels/PurchaseHistory/PurchaseHistoryViewModel.swift",
        "CustomerCenter/ViewModels/PurchaseHistory/PurchaseInformation+History.swift",
        "CustomerCenter/ViewModels/RelevantPurchasesListViewModel.swift",
        "CustomerCenter/ViewModels/RestorePurchasesAlertViewModel.swift",
        "CustomerCenter/ViewModels/SubscriptionDetailViewModel.swift",
        "CustomerCenter/ViewModels/VirtualCurrencyBalancesScreenViewModel.swift",
        "CustomerCenter/Views/ActiveSubscriptionButtonsView.swift",
        "CustomerCenter/Views/AppUpdateWarningView.swift",
        "CustomerCenter/Views/CompatibilityLabeledContent.swift",
        "CustomerCenter/Views/CompatibilityNavigationStack.swift",
        "CustomerCenter/Views/CompatibilityTopBarTrailing.swift",
        "CustomerCenter/Views/CreateTicketView.swift",
        "CustomerCenter/Views/CustomerCenterNavigationLink.swift",
        "CustomerCenter/Views/CustomerCenterNavigationOptions.swift",
        "CustomerCenter/Views/CustomerCenterView.swift",
        "CustomerCenter/Views/FallbackNoSubscriptionsView.swift",
        "CustomerCenter/Views/FeedbackSurveyView.swift",
        "CustomerCenter/Views/ManageSubscriptionsButtonsView.swift",
        "CustomerCenter/Views/NoSubscriptionsCardView.swift",
        "CustomerCenter/Views/PromotionalOfferView.swift",
        "CustomerCenter/Views/PurchaseCardView.swift",
        "CustomerCenter/Views/PurchaseHistory/PurchaseDetailView.swift",
        "CustomerCenter/Views/PurchaseHistory/PurchaseHistoryView.swift",
        "CustomerCenter/Views/RelevantPurchasesListView.swift",
        "CustomerCenter/Views/RestorePurchasesAlert.swift",
        "CustomerCenter/Views/ScrollViewSection.swift",
        "CustomerCenter/Views/ScrollViewWithOSBackground.swift",
        "CustomerCenter/Views/SubscriptionDetailView.swift",
        "CustomerCenter/Views/TintedProgressView.swift",
        "CustomerCenter/Views/UIKit Compatibility/CustomerCenterViewController.swift",
        "CustomerCenter/Views/UIKit Compatibility/CustomerCenterViewControllerDelegate.swift",
        "CustomerCenter/Views/Virtual Currencies/VirtualCurrenciesScrollViewWithOSBackgroundSection.swift",
        "CustomerCenter/Views/Virtual Currencies/VirtualCurrencyBalanceListRow.swift",
        "CustomerCenter/Views/Virtual Currencies/VirtualCurrencyBalancesScreen.swift",
        "Data/ComponentInteractionData+Factories.swift",
        "Data/Constants.swift",
        "Data/CustomPaywallVariables.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/PaywallSourceEnvironment.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",
        "Data/VirtualCurrenciesFixtures.swift",
        "Helpers/AppStyleExtractor.swift",
        "Helpers/Bundle+Extensions.swift",
        "Helpers/ColorComputationHelpers.swift",
        "Helpers/ColorInformation+MultiScheme.swift",
        "Helpers/DualColorImageGenerator.swift",
        "Helpers/EmergeRenderingMode.swift",
        "Helpers/ExitOfferHelper.swift",
        "Helpers/FileImageLoader.swift",
        "Helpers/ImageLoader.swift",
        "Helpers/Logger.swift",
        "Helpers/Optional+Extensions.swift",
        "Helpers/Package+VariableDataProvider.swift",
        "Helpers/PaywallData+Default.swift",
        "Helpers/PaywallWarning.swift",
        "Helpers/PreviewHelpers.swift",
        "Helpers/PriceFormatterExtensions.swift",
        "Helpers/PurchaseResultComparator.swift",
        "Helpers/ResumeAction.swift",
        "Helpers/RuntimeUtils.swift",
        "Helpers/StoreProduct+Extensions.swift",
        "Helpers/TemplateView+MultiTier.swift",
        "Helpers/VersionDetector.swift",
        "Modifiers/ConsistentPackageContentView.swift",
        "Modifiers/ConsistentTierContentView.swift",
        "Modifiers/EnvironmentValues+Workflow.swift",
        "Modifiers/FitToAspectRatio.swift",
        "Modifiers/FooterHidingModifier.swift",
        "Modifiers/ViewExtensions.swift",
        "PaywallFontProvider.swift",
        "PaywallView.swift",
        "Purchasing/MockPurchases.swift",
        "Purchasing/PaywallEventTracker.swift",
        "Purchasing/PaywallPurchasesType.swift",
        "Purchasing/PurchaseHandler+TestData.swift",
        "Purchasing/PurchaseHandler.swift",
        "Purchasing/WorkflowContext.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/Carousel/ScrollViewGestureCoordinator.swift",
        "Templates/V2/Components/ComponentsView.swift",
        "Templates/V2/Components/Countdown/CountdownComponentView.swift",
        "Templates/V2/Components/Countdown/CountdownComponentViewModel.swift",
        "Templates/V2/Components/Header/HeaderComponentView.swift",
        "Templates/V2/Components/Header/HeaderComponentViewModel.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/FlexSpacer.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/Tabs/TabsPackageSelectionResolver.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/Components/Video/VideoAutoplayHandler.swift",
        "Templates/V2/Components/Video/VideoComponentView.swift",
        "Templates/V2/Components/Video/VideoComponentViewModel.swift",
        "Templates/V2/Components/Video/VideoPlayerView.swift",
        "Templates/V2/Components/Video/VideoPlayerViewNSView.swift",
        "Templates/V2/Components/Video/VideoPlayerViewUIView.swift",
        "Templates/V2/EnvironmentObjects/CarouselState.swift",
        "Templates/V2/EnvironmentObjects/IntroOfferEligibilityContext.swift",
        "Templates/V2/EnvironmentObjects/OpenSheet.swift",
        "Templates/V2/EnvironmentObjects/PackageContext.swift",
        "Templates/V2/EnvironmentObjects/PaywallPromoOfferCache.swift",
        "Templates/V2/EnvironmentObjects/PlanSelectionDefaultPackage.swift",
        "Templates/V2/EnvironmentObjects/RequestSizeCalculation.swift",
        "Templates/V2/EnvironmentObjects/ScreenCondition.swift",
        "Templates/V2/EnvironmentObjects/SelectedPackageId.swift",
        "Templates/V2/Localizations/LocaleFinder.swift",
        "Templates/V2/Localizations/LocalizationDictionaryExtensions.swift",
        "Templates/V2/PaywallsV2View.swift",
        "Templates/V2/Previews/PreviewMock.swift",
        "Templates/V2/Previews/SafeAreaPreviewShell.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/ButtonWithFooterPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/ConditionalConfigurabilityPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/FallbackComponentPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/FamilySharingTogglePreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/HeaderNestedHeroZLayerSafeAreaPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/HeaderTextBodyHeroSafeAreaPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/MultiTierPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/PackageVisibilityPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/PurchaseButtonInPackagePreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/Template1Preview.swift",
        "Templates/V2/Variables/VariableHandlerV2.swift",
        "Templates/V2/ViewHelpers/ApplySizing.swift",
        "Templates/V2/ViewHelpers/BackgroundStyle.swift",
        "Templates/V2/ViewHelpers/BadgeModifier.swift",
        "Templates/V2/ViewHelpers/DisplayableColor.swift",
        "Templates/V2/ViewHelpers/Fill.swift",
        "Templates/V2/ViewHelpers/FixMacButtonsModifier.swift",
        "Templates/V2/ViewHelpers/ForegroundColorScheme.swift",
        "Templates/V2/ViewHelpers/NavigatetoURL.swift",
        "Templates/V2/ViewHelpers/ProgressViewModifier.swift",
        "Templates/V2/ViewHelpers/ShadowModifier.swift",
        "Templates/V2/ViewHelpers/Shape.swift",
        "Templates/V2/ViewHelpers/SizeModifier.swift",
        "Templates/V2/ViewHelpers/TransitionModifier.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",
        "Templates/V2/ViewModelHelpers/WorkflowNavigator.swift",
        "Templates/V2/ViewModelHelpers/WorkflowScreenMapper.swift",
        "Templates/V2/WorkflowPaywallView.swift",
        "UIKit/PaywallFooterViewController.swift",
        "UIKit/PaywallViewController.swift",
        "View+OnRedeemWebPurchaseAttempt.swift",
        "View+PresentPaywall.swift",
        "View+PresentPaywallFooter.swift",
        "View+PurchaseRestoreCompleted.swift",
        "Views/AsyncButton.swift",
        "Views/CompatibilityContentUnavailableView.swift",
        "Views/DebugErrorView.swift",
        "Views/DefaultPaywall/AppIconDetailProvider.swift",
        "Views/DefaultPaywall/DefaultPaywallPreviews.swift",
        "Views/DefaultPaywall/DefaultPaywallView.swift",
        "Views/DefaultPaywall/DefaultPaywallWarning.swift",
        "Views/DefaultPaywall/DefaultProductCell.swift",
        "Views/ErrorDisplay.swift",
        "Views/ErrorView.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" : [
        "Ads/AdTracker.swift",
        "Ads/AdsAPI.swift",
        "Ads/Events/AdEvent.swift",
        "Ads/Events/AdEventStore.swift",
        "Ads/Events/Networking/AdEventsRequest.swift",
        "Ads/Events/Networking/AdHTTPRequestPath.swift",
        "Ads/Events/Networking/PostAdEventsOperation.swift",
        "Ads/Events/StoredAdEvent.swift",
        "Ads/Events/StoredAdEventSerializer.swift",
        "Ads/RewardVerification/Networking/GetRewardVerificationStatusOperation.swift",
        "Ads/RewardVerification/Networking/RewardVerificationStatusCallback.swift",
        "Ads/RewardVerification/Networking/RewardVerificationStatusResponse.swift",
        "Ads/RewardVerification/RewardVerificationPollStatus.swift",
        "Ads/RewardVerification/VerifiedReward.swift",
        "Ads/RewardVerification/VirtualCurrencyReward.swift",
        "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/Checksum.swift",
        "Caching/DeviceCache.swift",
        "Caching/DirectoryHelper.swift",
        "Caching/FileRepository.swift",
        "Caching/InMemoryCachedObject.swift",
        "Caching/KeyedDeferredValueStore.swift",
        "Caching/LargeItemCacheType.swift",
        "Caching/URLWithValidation.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/Networking/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/EventsManager.swift",
        "Events/FeatureEvents/FeatureEvent.swift",
        "Events/FeatureEvents/FeatureEventStore.swift",
        "Events/FeatureEvents/Networking/FeatureEventHTTPRequestPath.swift",
        "Events/FeatureEvents/Networking/FeatureEventsRequest.swift",
        "Events/FeatureEvents/Networking/PostFeatureEventsOperation.swift",
        "Events/FeatureEvents/StoredFeatureEvent.swift",
        "Events/FeatureEvents/StoredFeatureEventSerializer.swift",
        "Events/Networking/EventsHTTPRequestPath.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/CacheStrings.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/EventsManagerStrings.swift",
        "Logging/Strings/FileRepositoryStrings.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/TransactionMetadataStrings.swift",
        "Logging/Strings/VirtualCurrencyStrings.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/SynchronizedLargeItemCache.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/IsPurchaseAllowedByRestoreBehaviorCallback.swift",
        "Networking/Caching/LogInCallback.swift",
        "Networking/Caching/OfferingsCallback.swift",
        "Networking/Caching/ProductEntitlementMappingCallback.swift",
        "Networking/Caching/VirtualCurrenciesCallback.swift",
        "Networking/Caching/WebBillingProductsCallback.swift",
        "Networking/Caching/WebOfferingProductsCallback.swift",
        "Networking/Caching/WorkflowsCallback.swift",
        "Networking/ConnectionErrorReason.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/HTTPRequestTimeoutManager.swift",
        "Networking/HTTPClient/HTTPResponse.swift",
        "Networking/HTTPClient/HTTPResponseBody.swift",
        "Networking/HTTPClient/HTTPStatusCode.swift",
        "Networking/HTTPClient/NetworkError.swift",
        "Networking/HTTPClient/RedirectLoggerTaskDelegate.swift",
        "Networking/HTTPClient/SimpleNetworkServiceType.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/GetVirtualCurrenciesOperation.swift",
        "Networking/Operations/GetWebBillingProductsOperation.swift",
        "Networking/Operations/GetWebOfferingProductsOperation.swift",
        "Networking/Operations/GetWorkflowOperation.swift",
        "Networking/Operations/Handling/CustomerInfoResponseHandler.swift",
        "Networking/Operations/HealthOperation.swift",
        "Networking/Operations/HealthReportAvailabilityOperation.swift",
        "Networking/Operations/HealthReportOperation.swift",
        "Networking/Operations/LogInOperation.swift",
        "Networking/Operations/NetworkOperation.swift",
        "Networking/Operations/PostAdServicesTokenOperation.swift",
        "Networking/Operations/PostAttributionDataOperation.swift",
        "Networking/Operations/PostIsPurchaseAllowedByRestoreBehaviorOperation.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/HealthReportAvailabilityResponse.swift",
        "Networking/Responses/HealthReportResponse.swift",
        "Networking/Responses/IsPurchaseAllowedByRestoreBehaviorResponse.swift",
        "Networking/Responses/OfferingsResponse.swift",
        "Networking/Responses/PostOfferResponse.swift",
        "Networking/Responses/ProductEntitlementMappingResponse.swift",
        "Networking/Responses/RevenueCatUI/PaywallComponentsData.swift",
        "Networking/Responses/RevenueCatUI/UIConfig.swift",
        "Networking/Responses/VirtualCurrenciesResponse.swift",
        "Networking/Responses/WebBillingProductsResponse.swift",
        "Networking/Responses/WebOfferingProductsResponse.swift",
        "Networking/Responses/WorkflowsResponse.swift",
        "Networking/VirtualCurrenciesAPI.swift",
        "Networking/WebBillingAPI.swift",
        "Networking/WebBillingHTTPRequestPath.swift",
        "Networking/Workflows/WorkflowDetailProcessor.swift",
        "Networking/Workflows/WorkflowResponseAction.swift",
        "Networking/WorkflowsAPI.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/PaywallCountdownComponent.swift",
        "Paywalls/Components/PaywallHeaderComponent.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/Components/PaywallVideoComponent.swift",
        "Paywalls/Components/Transitions/PaywallAnimation.swift",
        "Paywalls/Components/Transitions/PaywallTransition.swift",
        "Paywalls/Events/CustomPaywallEvent.swift",
        "Paywalls/Events/CustomPaywallImpressionParams.swift",
        "Paywalls/Events/Networking/EventsRequest+CustomPaywallImpression.swift",
        "Paywalls/Events/Networking/EventsRequest+Paywall.swift",
        "Paywalls/Events/PaywallEvent.swift",
        "Paywalls/ExitOffer.swift",
        "Paywalls/Locale+Comparison.swift",
        "Paywalls/PaywallCacheWarming.swift",
        "Paywalls/PaywallColor.swift",
        "Paywalls/PaywallData+Localization.swift",
        "Paywalls/PaywallData.swift",
        "Paywalls/PaywallFontManagerType.swift",
        "Paywalls/PaywallSource.swift",
        "Paywalls/PaywallViewMode.swift",
        "Paywalls/SubscriptionHistoryTracker.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/ProductsManagerFactory.swift",
        "Purchasing/ProductsManagerType.swift",
        "Purchasing/ProductsRequestFactory.swift",
        "Purchasing/PurchaseOwnershipType.swift",
        "Purchasing/Purchases/Attribution.swift",
        "Purchasing/Purchases/LocalTransactionMetadata.swift",
        "Purchasing/Purchases/LocalTransactionMetadataStore.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/TransactionMetadataSyncHelper.swift",
        "Purchasing/Purchases/TransactionNotifications.swift",
        "Purchasing/Purchases/TransactionPoster.swift",
        "Purchasing/ReceiptFetcher.swift",
        "Purchasing/ReceiptRefreshPolicy.swift",
        "Purchasing/SimulatedStore/SimulatedStoreProduct.swift",
        "Purchasing/SimulatedStore/SimulatedStoreProductsManager.swift",
        "Purchasing/SimulatedStore/SimulatedStorePurchaseHandler.swift",
        "Purchasing/SimulatedStore/SimulatedStorePurchaseUI.swift",
        "Purchasing/SimulatedStore/SimulatedStoreTransaction.swift",
        "Purchasing/SimulatedStore/WebBillingProduct+SimulatedStoreProduct.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/StoreKit2PromotionalOfferPurchaseOptions.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/TestStoreTransaction.swift",
        "Purchasing/StoreKitAbstractions/TransactionReason.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+Appstack.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/PaymentAuthorizationProvider.swift",
        "Support/PaywallExtensions.swift",
        "Support/PurchasesDiagnostics.swift",
        "Support/SDKHealthError+CustomNSError.swift",
        "Support/SDKHealthManager.swift",
        "Support/StoreMessageType.swift",
        "Support/StoreMessagesHelper.swift",
        "Support/SwiftVersionCheck.swift",
        "Virtual Currencies/VirtualCurrencies.swift",
        "Virtual Currencies/VirtualCurrency.swift",
        "Virtual Currencies/VirtualCurrencyManager.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.
warning: 'spi-builder-workspace': ignoring broken symlink /Users/admin/builder/spi-builder-workspace/Tests/RevenueCatUITests/PaywallsV2/__PreviewResources__
warning: 'spi-builder-workspace': Invalid Resource 'PaywallsV2/__PreviewResources__': File not found.
Done.