The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of RevenueCat, reference main (94eb2c), with Swift 6.1 for macOS (SPM) on 11 Dec 2025 16:49:33 UTC.

Swift 6 data race errors: 164

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

117 |         Logger.debug(Strings.restoring_purchases)
118 |
119 |         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
120 |         if success {
121 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:61: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
 59 |     deinit {
 60 |         // Not calling stop because of async needed
 61 |         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
 62 |         timer = nil
 63 |         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:62: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
 60 |         // Not calling stop because of async needed
 61 |         timer?.connect().cancel()
 62 |         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
 63 |         cancellable = nil
 64 |     }
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:63: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
 61 |         timer?.connect().cancel()
 62 |         timer = nil
 63 |         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
 64 |     }
 65 |
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
[1116/1118] Compiling RevenueCatUI ComponentViewState.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74: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
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
    :
143 | extension View {
144 |
145 |     func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
    |          `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
146 |         self
147 |             .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:76:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 74 |                 .adaptTemplateView(with: configuration)
 75 |                 .task(id: offering) {
 76 |                     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
 77 |                 }
 78 |
/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:80:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |
 66 |     @ViewBuilder
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 78 |
 79 |         case let .failure(error):
 80 |             DebugErrorView(error, releaseBehavior: .emptyView)
    |             `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |     }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:106:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
104 | extension DebugErrorView where Content == AnyView {
105 |
106 |     init(_ error: Error, releaseBehavior: ReleaseBehavior) {
    |     |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'View'
107 |         self.init(
108 |             (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             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:127:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 41 |     private var purchaseHandler: PurchaseHandler
 42 |
 43 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 44 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 45 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             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:131:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 47 |     private var purchaseHandler: PurchaseHandler
 48 |
 49 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 50 |         self.configuration = configuration
 51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 46 |     private var purchaseHandler: PurchaseHandler
 47 |
 48 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 49 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 50 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 62 |     }
 63 |
 64 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 65 |         guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
 66 |             fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:101: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
 99 |
100 | struct HeightPreferenceKey: PreferenceKey {
101 |     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
102 |     static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
103 |         value = max(value, nextValue())
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:345: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: property declared here
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
343 |             repeats: true
344 |         ) { _ in
345 |             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
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:347: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
147 |
148 |     @State private var isPaused: Bool = false
149 |     @State private var pauseEndDate: Date?
    |                        `- note: property declared here
150 |     @State private var isInitialized = false
151 |
    :
345 |             guard !isPaused else {
346 |                 // If paused, check if 10 seconds have passed
347 |                 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
348 |                     isPaused = false // Resume auto-play
349 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:348: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: mutation of this property is only permitted within the actor
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
348 |                     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
349 |                 }
350 |                 return
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:357: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
154 |
155 |     /// Used to animate opacity for the loop transition
156 |     @State private var opacity: CGFloat = 1.0
    |                        `- note: mutation of this property is only permitted within the actor
157 |
158 |     // MARK: - Init
    :
355 |                 // Fade out both slide + indicator
356 |                 withAnimation(.easeInOut(duration: fadeDuration)) {
357 |                     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
358 |                 }
359 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:374: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
372 |             case .slide:
373 |                 withAnimation(.easeInOut(duration: Double(msTransitionTime) / 1000)) {
374 |                     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
375 |                     if loop {
376 |                         expandDataIfNeeded()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:376: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
374 |                     index += 1
375 |                     if loop {
376 |                         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
377 |                         pruneDataIfNeeded()
378 |                     } else {
    :
442 |     // MARK: - Expanding
443 |
444 |     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'
445 |         // If index is in the first copy, prepend another
446 |         if index < originalCount {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:377: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
375 |                     if loop {
376 |                         expandDataIfNeeded()
377 |                         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
378 |                     } else {
379 |                         index = min(index, data.count - 1)
    :
461 |     // MARK: - Pruning
462 |
463 |     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'
464 |         let copiesInData = data.count / originalCount
465 |         let maxCopiesAllowed = 5
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: property declared here
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
135 |
136 |     /// The “expanded” data array, each item with a unique ID.
137 |     @State private var data: [CarouselItem<Content>] = []
    |                        `- note: property declared here
138 |
139 |     /// The current index (in `data`) of the "active" page.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:127:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:131:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:119:70: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
117 |         Logger.debug(Strings.restoring_purchases)
118 |
119 |         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
120 |         if success {
121 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:61: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
 59 |     deinit {
 60 |         // Not calling stop because of async needed
 61 |         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
 62 |         timer = nil
 63 |         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:62: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
 60 |         // Not calling stop because of async needed
 61 |         timer?.connect().cancel()
 62 |         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
 63 |         cancellable = nil
 64 |     }
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:63: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
 61 |         timer?.connect().cancel()
 62 |         timer = nil
 63 |         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
 64 |     }
 65 |
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
[1117/1118] Compiling RevenueCatUI PackageComponentView.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74: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
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
    :
143 | extension View {
144 |
145 |     func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
    |          `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
146 |         self
147 |             .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:76:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 74 |                 .adaptTemplateView(with: configuration)
 75 |                 .task(id: offering) {
 76 |                     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
 77 |                 }
 78 |
/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:80:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |
 66 |     @ViewBuilder
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 78 |
 79 |         case let .failure(error):
 80 |             DebugErrorView(error, releaseBehavior: .emptyView)
    |             `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |     }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:106:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
104 | extension DebugErrorView where Content == AnyView {
105 |
106 |     init(_ error: Error, releaseBehavior: ReleaseBehavior) {
    |     |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'View'
107 |         self.init(
108 |             (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             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:127:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 41 |     private var purchaseHandler: PurchaseHandler
 42 |
 43 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 44 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 45 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             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:131:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 47 |     private var purchaseHandler: PurchaseHandler
 48 |
 49 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 50 |         self.configuration = configuration
 51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 46 |     private var purchaseHandler: PurchaseHandler
 47 |
 48 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 49 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 50 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 62 |     }
 63 |
 64 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 65 |         guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
 66 |             fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:101: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
 99 |
100 | struct HeightPreferenceKey: PreferenceKey {
101 |     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
102 |     static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
103 |         value = max(value, nextValue())
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:345: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: property declared here
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
343 |             repeats: true
344 |         ) { _ in
345 |             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
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:347: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
147 |
148 |     @State private var isPaused: Bool = false
149 |     @State private var pauseEndDate: Date?
    |                        `- note: property declared here
150 |     @State private var isInitialized = false
151 |
    :
345 |             guard !isPaused else {
346 |                 // If paused, check if 10 seconds have passed
347 |                 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
348 |                     isPaused = false // Resume auto-play
349 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:348: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: mutation of this property is only permitted within the actor
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
348 |                     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
349 |                 }
350 |                 return
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:357: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
154 |
155 |     /// Used to animate opacity for the loop transition
156 |     @State private var opacity: CGFloat = 1.0
    |                        `- note: mutation of this property is only permitted within the actor
157 |
158 |     // MARK: - Init
    :
355 |                 // Fade out both slide + indicator
356 |                 withAnimation(.easeInOut(duration: fadeDuration)) {
357 |                     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
358 |                 }
359 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:374: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
372 |             case .slide:
373 |                 withAnimation(.easeInOut(duration: Double(msTransitionTime) / 1000)) {
374 |                     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
375 |                     if loop {
376 |                         expandDataIfNeeded()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:376: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
374 |                     index += 1
375 |                     if loop {
376 |                         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
377 |                         pruneDataIfNeeded()
378 |                     } else {
    :
442 |     // MARK: - Expanding
443 |
444 |     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'
445 |         // If index is in the first copy, prepend another
446 |         if index < originalCount {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:377: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
375 |                     if loop {
376 |                         expandDataIfNeeded()
377 |                         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
378 |                     } else {
379 |                         index = min(index, data.count - 1)
    :
461 |     // MARK: - Pruning
462 |
463 |     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'
464 |         let copiesInData = data.count / originalCount
465 |         let maxCopiesAllowed = 5
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: property declared here
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
135 |
136 |     /// The “expanded” data array, each item with a unique ID.
137 |     @State private var data: [CarouselItem<Content>] = []
    |                        `- note: property declared here
138 |
139 |     /// The current index (in `data`) of the "active" page.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:127:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:131:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:119:70: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
117 |         Logger.debug(Strings.restoring_purchases)
118 |
119 |         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
120 |         if success {
121 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:61: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
 59 |     deinit {
 60 |         // Not calling stop because of async needed
 61 |         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
 62 |         timer = nil
 63 |         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:62: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
 60 |         // Not calling stop because of async needed
 61 |         timer?.connect().cancel()
 62 |         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
 63 |         cancellable = nil
 64 |     }
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:63: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
 61 |         timer?.connect().cancel()
 62 |         timer = nil
 63 |         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
 64 |     }
 65 |
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
[1118/1118] Compiling RevenueCatUI PackageComponentViewModel.swift
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74: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
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
    :
143 | extension View {
144 |
145 |     func adaptTemplateView(with configuration: TemplateViewConfiguration) -> some View {
    |          `- note: calls to instance method 'adaptTemplateView(with:)' from outside of its actor context are implicitly asynchronous
146 |         self
147 |             .background(configuration.backgroundView)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:76:68: warning: capture of 'configuration' with non-sendable type 'TemplateViewConfiguration' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 74 |                 .adaptTemplateView(with: configuration)
 75 |                 .task(id: offering) {
 76 |                     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
 77 |                 }
 78 |
/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:80:13: warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |
 66 |     @ViewBuilder
 67 |     func createView(for offering: Offering,
    |          `- note: add '@MainActor' to make instance method 'createView(for:template:configuration:introEligibility:)' part of global actor 'MainActor'
 68 |                     template: PaywallTemplate,
 69 |                     configuration: Result<TemplateViewConfiguration, Error>,
    :
 78 |
 79 |         case let .failure(error):
 80 |             DebugErrorView(error, releaseBehavior: .emptyView)
    |             `- warning: call to main actor-isolated initializer 'init(_:releaseBehavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |     }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Views/DebugErrorView.swift:106:5: note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
104 | extension DebugErrorView where Content == AnyView {
105 |
106 |     init(_ error: Error, releaseBehavior: ReleaseBehavior) {
    |     |- note: calls to initializer 'init(_:releaseBehavior:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'View'
107 |         self.init(
108 |             (error as NSError).localizedDescription,
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             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:127:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template2View.swift:43:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 41 |     private var purchaseHandler: PurchaseHandler
 42 |
 43 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 44 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 45 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             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:131:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template4View.swift:49:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 47 |     private var purchaseHandler: PurchaseHandler
 48 |
 49 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 50 |         self.configuration = configuration
 51 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template5View.swift:48:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 46 |     private var purchaseHandler: PurchaseHandler
 47 |
 48 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 49 |         self._selectedPackage = .init(initialValue: configuration.packages.default)
 50 |         self.configuration = configuration
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
116 |
117 |     @ViewBuilder
118 |     private static func createView(template: PaywallTemplate,
    |                         `- note: add '@MainActor' to make static method 'createView(template:configuration:)' part of global actor 'MainActor'
119 |                                    configuration: TemplateViewConfiguration) -> some View {
120 |         #if os(watchOS)
    :
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/Template7View.swift:64:5: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
 62 |     }
 63 |
 64 |     init(_ configuration: TemplateViewConfiguration) {
    |     |- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
    |     `- note: main actor isolation inferred from conformance to protocol 'TemplateViewType'
 65 |         guard let (firstTier, allTiers, tierNames) = configuration.packages.multiTier else {
 66 |             fatalError("Attempted to display a multi-tier template with invalid data: \(configuration.packages)")
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:101: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
 99 |
100 | struct HeightPreferenceKey: PreferenceKey {
101 |     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
102 |     static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
103 |         value = max(value, nextValue())
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:345: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: property declared here
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
343 |             repeats: true
344 |         ) { _ in
345 |             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
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:347: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
147 |
148 |     @State private var isPaused: Bool = false
149 |     @State private var pauseEndDate: Date?
    |                        `- note: property declared here
150 |     @State private var isInitialized = false
151 |
    :
345 |             guard !isPaused else {
346 |                 // If paused, check if 10 seconds have passed
347 |                 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
348 |                     isPaused = false // Resume auto-play
349 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:348: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
146 |     @State private var autoTimer: Timer?
147 |
148 |     @State private var isPaused: Bool = false
    |                        `- note: mutation of this property is only permitted within the actor
149 |     @State private var pauseEndDate: Date?
150 |     @State private var isInitialized = false
    :
346 |                 // If paused, check if 10 seconds have passed
347 |                 if let pauseEndDate = pauseEndDate, Date() >= pauseEndDate {
348 |                     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
349 |                 }
350 |                 return
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:357: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
154 |
155 |     /// Used to animate opacity for the loop transition
156 |     @State private var opacity: CGFloat = 1.0
    |                        `- note: mutation of this property is only permitted within the actor
157 |
158 |     // MARK: - Init
    :
355 |                 // Fade out both slide + indicator
356 |                 withAnimation(.easeInOut(duration: fadeDuration)) {
357 |                     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
358 |                 }
359 |
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:374: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
372 |             case .slide:
373 |                 withAnimation(.easeInOut(duration: Double(msTransitionTime) / 1000)) {
374 |                     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
375 |                     if loop {
376 |                         expandDataIfNeeded()
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:376: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
374 |                     index += 1
375 |                     if loop {
376 |                         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
377 |                         pruneDataIfNeeded()
378 |                     } else {
    :
442 |     // MARK: - Expanding
443 |
444 |     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'
445 |         // If index is in the first copy, prepend another
446 |         if index < originalCount {
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:377: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
375 |                     if loop {
376 |                         expandDataIfNeeded()
377 |                         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
378 |                     } else {
379 |                         index = min(index, data.count - 1)
    :
461 |     // MARK: - Pruning
462 |
463 |     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'
464 |         let copiesInData = data.count / originalCount
465 |         let maxCopiesAllowed = 5
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: mutation of this property is only permitted within the actor
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
138 |
139 |     /// The current index (in `data`) of the "active" page.
140 |     @State private var index: Int = 0
    |                        `- note: property declared here
141 |
142 |     /// Real-time drag offset from the user’s finger.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Carousel/CarouselComponentView.swift:379: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
135 |
136 |     /// The “expanded” data array, each item with a unique ID.
137 |     @State private var data: [CarouselItem<Content>] = []
    |                        `- note: property declared here
138 |
139 |     /// The current index (in `data`) of the "active" page.
    :
377 |                         pruneDataIfNeeded()
378 |                     } else {
379 |                         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
380 |                     }
381 |                 }
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:125:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
123 |         switch template {
124 |         case .template1:
125 |             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
126 |         case .template2:
127 |             Template2View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:127:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
125 |             Template1View(configuration)
126 |         case .template2:
127 |             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
128 |         case .template3:
129 |             Template3View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:129:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
127 |             Template2View(configuration)
128 |         case .template3:
129 |             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
130 |         case .template4:
131 |             Template4View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:131:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
129 |             Template3View(configuration)
130 |         case .template4:
131 |             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
132 |         case .template5:
133 |             Template5View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:133:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
131 |             Template4View(configuration)
132 |         case .template5:
133 |             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
134 |         case .template7:
135 |             Template7View(configuration)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:135:13: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
133 |             Template5View(configuration)
134 |         case .template7:
135 |             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
136 |         }
137 |         #endif
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/TemplateViewType.swift:74:18: warning: sending value of non-Sendable type 'some View' risks causing data races; this is an error in the Swift 6 language mode
 72 |         case let .success(configuration):
 73 |             Self.createView(template: template, configuration: configuration)
 74 |                 .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
 75 |                 .task(id: offering) {
 76 |                     await introEligibility.computeEligibility(for: configuration.packages)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:119:70: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
117 |         Logger.debug(Strings.restoring_purchases)
118 |
119 |         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
120 |         if success {
121 |             Logger.debug(Strings.restored_purchases)
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending value of non-Sendable type '() async -> Bool' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Button/ButtonComponentView.swift:155:53: warning: sending 'self.purchaseHandler' risks causing data races; this is an error in the Swift 6 language mode
153 |         if let interceptor = self.offerCodeRedemptionInitiatedAction {
154 |             // Wait for the interceptor to call resume before proceeding
155 |             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
156 |                 await withCheckedContinuation { continuation in
157 |                     interceptor(resume: ResumeAction { shouldProceed in
/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Templates/V2/Components/Countdown/CountdownComponentViewModel.swift:61: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
 59 |     deinit {
 60 |         // Not calling stop because of async needed
 61 |         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
 62 |         timer = nil
 63 |         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:62: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
 60 |         // Not calling stop because of async needed
 61 |         timer?.connect().cancel()
 62 |         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
 63 |         cancellable = nil
 64 |     }
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:63: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
 61 |         timer?.connect().cancel()
 62 |         timer = nil
 63 |         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
 64 |     }
 65 |
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! (44.82s)
Fetching https://github.com/pointfreeco/swift-snapshot-testing from cache
Fetched https://github.com/pointfreeco/swift-snapshot-testing from cache (2.03s)
Fetching https://github.com/quick/nimble
[1/19804] Fetching nimble
Fetched https://github.com/quick/nimble from cache (1.90s)
Computing version for https://github.com/quick/nimble
Computed https://github.com/quick/nimble at 13.7.1 (2.45s)
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
[1/1257] Fetching cwlpreconditiontesting
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (0.96s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.2.2 (1.58s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
[1/460] Fetching cwlcatchexception
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (0.77s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.2.1 (1.39s)
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/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.2.1
Creating working copy for https://github.com/quick/nimble
Working copy of https://github.com/quick/nimble resolved at 13.7.1
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing
Working copy of https://github.com/pointfreeco/swift-snapshot-testing resolved at 26ed3a2b4a2df47917ca9b790a57f91285b923fb
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: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/RevenueCatUI/RevenueCatUIDev.xctestplan
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" : {
        "revision" : [
          "26ed3a2b4a2df47917ca9b790a57f91285b923fb"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-snapshot-testing"
    }
  ],
  "manifest_display_name" : "RevenueCat",
  "name" : "RevenueCat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "watchos",
      "version" : "6.2"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "RevenueCat",
      "targets" : [
        "RevenueCat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RevenueCat_CustomEntitlementComputation",
      "targets" : [
        "RevenueCat_CustomEntitlementComputation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ReceiptParser",
      "targets" : [
        "ReceiptParser"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RevenueCatUI",
      "targets" : [
        "RevenueCatUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RevenueCat_CustomEntitlementComputation",
      "module_type" : "SwiftTarget",
      "name" : "RevenueCat_CustomEntitlementComputation",
      "path" : "CustomEntitlementComputation",
      "product_memberships" : [
        "RevenueCat_CustomEntitlementComputation"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/CustomEntitlementComputation/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Ads/AdTracker.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",
        "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/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/CodableStrings.swift",
        "Logging/Strings/ConfigureStrings.swift",
        "Logging/Strings/CustomerInfoStrings.swift",
        "Logging/Strings/DiagnosticsStrings.swift",
        "Logging/Strings/ETagStrings.swift",
        "Logging/Strings/EligibilityStrings.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/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/LogInCallback.swift",
        "Networking/Caching/OfferingsCallback.swift",
        "Networking/Caching/ProductEntitlementMappingCallback.swift",
        "Networking/Caching/VirtualCurrenciesCallback.swift",
        "Networking/Caching/WebBillingProductsCallback.swift",
        "Networking/Caching/WebOfferingProductsCallback.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/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/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/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/VirtualCurrenciesAPI.swift",
        "Networking/WebBillingAPI.swift",
        "Networking/WebBillingHTTPRequestPath.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/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/Networking/EventsRequest+Paywall.swift",
        "Paywalls/Events/PaywallEvent.swift",
        "Paywalls/Locale+Comparison.swift",
        "Paywalls/PaywallCacheWarming.swift",
        "Paywalls/PaywallColor.swift",
        "Paywalls/PaywallData+Localization.swift",
        "Paywalls/PaywallData.swift",
        "Paywalls/PaywallFontManagerType.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/PurchaseParams.swift",
        "Purchasing/Purchases/Purchases.swift",
        "Purchasing/Purchases/PurchasesAreCompletedBy.swift",
        "Purchasing/Purchases/PurchasesDelegate.swift",
        "Purchasing/Purchases/PurchasesOrchestrator.swift",
        "Purchasing/Purchases/PurchasesType.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/WinBackOffer.swift",
        "Purchasing/TransactionsFactory.swift",
        "Purchasing/TransactionsManager.swift",
        "Purchasing/TrialOrIntroPriceEligibilityChecker.swift",
        "Security/FakeSigning.swift",
        "Security/HTTPRequest+Signing.swift",
        "Security/HTTPRequestBody+Signing.swift",
        "Security/Signing+ResponseVerification.swift",
        "Security/Signing.swift",
        "Security/VerificationResult.swift",
        "SubscriberAttributes/AttributionDataMigrator.swift",
        "SubscriberAttributes/AttributionKey.swift",
        "SubscriberAttributes/ReservedSubscriberAttributes.swift",
        "SubscriberAttributes/SubscriberAttribute.swift",
        "SubscriberAttributes/SubscriberAttributesManager.swift",
        "Support/BeginRefundRequestHelper.swift",
        "Support/DebugUI/DebugContentViews.swift",
        "Support/DebugUI/DebugView.swift",
        "Support/DebugUI/DebugViewController.swift",
        "Support/DebugUI/DebugViewModel.swift",
        "Support/DebugUI/DebugViewSheetPresentation.swift",
        "Support/DebugUI/ProductStatus+Icon.swift",
        "Support/DebugUI/SDKHealthCheckStatus+Icon.swift",
        "Support/DebugUI/SDKHealthStatus+Icon.swift",
        "Support/FrameworkDisambiguation.swift",
        "Support/HealthReport+Validate.swift",
        "Support/ManageSubscriptionsHelper.swift",
        "Support/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" : [
        "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/SemanticVersionTests.swift",
        "Data/TemplateViewConfigurationTests.swift",
        "Data/VariablesTests.swift",
        "Helpers/AsyncTestHelpers.swift",
        "Helpers/AvailabilityChecks.swift",
        "Helpers/CurrentTestCaseTracker.swift",
        "Helpers/DataExtensions.swift",
        "Helpers/ImageSnapshot.swift",
        "Helpers/OSVersionEquivalent.swift",
        "Helpers/SnapshotTesting+Extensions.swift",
        "Helpers/TestCase.swift",
        "Helpers/TestLogHandler.swift",
        "ImageLoaderTests.swift",
        "LocalizationTests.swift",
        "Mocks/MockStoreProductDiscount.swift",
        "Mocks/MockTransaction.swift",
        "PaywallFooterTests.swift",
        "PaywallViewEventsTests.swift",
        "PaywallsV2/LocaleFinderTests.swift",
        "PaywallsV2/PaywallPreviewResourcesLoader.swift",
        "PaywallsV2/PresentedPartialsTests.swift",
        "PaywallsV2/TakeScreenshot.swift",
        "PaywallsV2/UIConfigProviderTests.swift",
        "PaywallsV2/VariableHandlerV2Tests.swift",
        "PresentIfNeededTests.swift",
        "PurchaseCompletedHandlerTests.swift",
        "Purchasing/MockStoreTransaction.swift",
        "Purchasing/PurchaseHandlerTests.swift",
        "Templates/ExternalPurchaseAndRestoreTests.swift",
        "Templates/OtherPaywallViewTests.swift",
        "Templates/PaywallViewDynamicTypeTests.swift",
        "Templates/PaywallViewLocalizationTests.swift",
        "Templates/Template1ViewTests.swift",
        "Templates/Template2ViewTests.swift",
        "Templates/Template3ViewTests.swift",
        "Templates/Template4ViewTests.swift",
        "Templates/Template5ViewTests.swift",
        "Templates/Template7ViewTests.swift"
      ],
      "target_dependencies" : [
        "RevenueCatUI"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RevenueCatUI",
      "module_type" : "SwiftTarget",
      "name" : "RevenueCatUI",
      "path" : "RevenueCatUI",
      "product_memberships" : [
        "RevenueCatUI"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ar.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ar"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/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/fi.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "fi"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/fr_CA.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "fr_ca"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/fr_FR.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "fr_fr"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/he.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "he"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hi.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "hi"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hr.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "hr"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/hu.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "hu"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/icons.xcassets",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/id.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "id"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/it.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "it"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ja.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ja"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/kk.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "kk"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ko.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ko"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ms.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ms"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/nl.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "nl"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/no.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "no"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pl.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "pl"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pt_BR.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "pt_br"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/pt_PT.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "pt_pt"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ro.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ro"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/ru.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "ru"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/sk.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "sk"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/sv.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "sv"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/th.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "th"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/tr.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "tr"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/uk.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "uk"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/vi.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "vi"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/zh_Hans.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "zh_hans"
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/RevenueCatUI/Resources/zh_Hant.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "zh_hant"
            }
          }
        }
      ],
      "sources" : [
        "Binding+Extensions.swift",
        "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/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/Virtual Currencies/VirtualCurrenciesScrollViewWithOSBackgroundSection.swift",
        "CustomerCenter/Views/Virtual Currencies/VirtualCurrencyBalanceListRow.swift",
        "CustomerCenter/Views/Virtual Currencies/VirtualCurrencyBalancesScreen.swift",
        "Data/Constants.swift",
        "Data/CustomerInfoFixtures.swift",
        "Data/Errors/PaywallError.swift",
        "Data/Errors/TemplateError.swift",
        "Data/IntroEligibility/IntroEligibilityViewModel.swift",
        "Data/IntroEligibility/TrialOrIntroEligibilityChecker+TestData.swift",
        "Data/IntroEligibility/TrialOrIntroEligibilityChecker.swift",
        "Data/Localization.swift",
        "Data/LocalizedAlertError.swift",
        "Data/PaywallData+Validation.swift",
        "Data/PaywallTemplate.swift",
        "Data/PaywallViewConfiguration.swift",
        "Data/PaywallViewMode+Extensions.swift",
        "Data/ProcessedLocalizedConfiguration.swift",
        "Data/Strings.swift",
        "Data/TemplateViewConfiguration+Extensions.swift",
        "Data/TemplateViewConfiguration+Images.swift",
        "Data/TemplateViewConfiguration.swift",
        "Data/TestData.swift",
        "Data/UserInterfaceIdiom.swift",
        "Data/Variables.swift",
        "Data/VirtualCurrenciesFixtures.swift",
        "Helpers/Bundle+Extensions.swift",
        "Helpers/ColorInformation+MultiScheme.swift",
        "Helpers/EmergeRenderingMode.swift",
        "Helpers/FileImageLoader.swift",
        "Helpers/ImageLoader.swift",
        "Helpers/Logger.swift",
        "Helpers/Optional+Extensions.swift",
        "Helpers/Package+VariableDataProvider.swift",
        "Helpers/PaywallData+Default.swift",
        "Helpers/PreviewHelpers.swift",
        "Helpers/PurchaseResultComparator.swift",
        "Helpers/ResumeAction.swift",
        "Helpers/RuntimeUtils.swift",
        "Helpers/StoreProduct+Extensions.swift",
        "Helpers/StoreProductDiscount+Extensions.swift",
        "Helpers/SubscriptionPeriod+Extensions.swift",
        "Helpers/TemplateView+MultiTier.swift",
        "Helpers/VersionDetector.swift",
        "Modifiers/ConsistentPackageContentView.swift",
        "Modifiers/ConsistentTierContentView.swift",
        "Modifiers/FitToAspectRatio.swift",
        "Modifiers/FooterHidingModifier.swift",
        "Modifiers/ViewExtensions.swift",
        "PaywallFontProvider.swift",
        "PaywallView.swift",
        "Purchasing/MockPurchases.swift",
        "Purchasing/PaywallPurchasesType.swift",
        "Purchasing/PurchaseHandler+TestData.swift",
        "Purchasing/PurchaseHandler.swift",
        "Templates/Other platforms/WatchTemplateView.swift",
        "Templates/Template1View.swift",
        "Templates/Template2View.swift",
        "Templates/Template3View.swift",
        "Templates/Template4View.swift",
        "Templates/Template5View.swift",
        "Templates/Template7View.swift",
        "Templates/TemplateViewType.swift",
        "Templates/V2/Components/Button/BottomSheetView.swift",
        "Templates/V2/Components/Button/ButtonComponentView.swift",
        "Templates/V2/Components/Button/ButtonComponentViewModel.swift",
        "Templates/V2/Components/Carousel/CarouselComponentView.swift",
        "Templates/V2/Components/Carousel/CarouselComponentViewModel.swift",
        "Templates/V2/Components/ComponentsView.swift",
        "Templates/V2/Components/Countdown/CountdownComponentView.swift",
        "Templates/V2/Components/Countdown/CountdownComponentViewModel.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/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/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/IntroOfferEligibilityContext.swift",
        "Templates/V2/EnvironmentObjects/OpenSheet.swift",
        "Templates/V2/EnvironmentObjects/PackageContext.swift",
        "Templates/V2/EnvironmentObjects/PaywallPromoOfferCache.swift",
        "Templates/V2/EnvironmentObjects/ScreenCondition.swift",
        "Templates/V2/Localizations/LocaleExtensions.swift",
        "Templates/V2/Localizations/LocaleFinder.swift",
        "Templates/V2/Localizations/LocalizationDictionaryExtensions.swift",
        "Templates/V2/PaywallsV2View.swift",
        "Templates/V2/Previews/PreviewMock.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/ButtonWithFooterPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/FallbackComponentPreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/FamilySharingTogglePreview.swift",
        "Templates/V2/Previews/TemplateComponentsViewPreviews/MultiTierPreview.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",
        "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/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/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",
        "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/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/CodableStrings.swift",
        "Logging/Strings/ConfigureStrings.swift",
        "Logging/Strings/CustomerInfoStrings.swift",
        "Logging/Strings/DiagnosticsStrings.swift",
        "Logging/Strings/ETagStrings.swift",
        "Logging/Strings/EligibilityStrings.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/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/LogInCallback.swift",
        "Networking/Caching/OfferingsCallback.swift",
        "Networking/Caching/ProductEntitlementMappingCallback.swift",
        "Networking/Caching/VirtualCurrenciesCallback.swift",
        "Networking/Caching/WebBillingProductsCallback.swift",
        "Networking/Caching/WebOfferingProductsCallback.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/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/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/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/VirtualCurrenciesAPI.swift",
        "Networking/WebBillingAPI.swift",
        "Networking/WebBillingHTTPRequestPath.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/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/Networking/EventsRequest+Paywall.swift",
        "Paywalls/Events/PaywallEvent.swift",
        "Paywalls/Locale+Comparison.swift",
        "Paywalls/PaywallCacheWarming.swift",
        "Paywalls/PaywallColor.swift",
        "Paywalls/PaywallData+Localization.swift",
        "Paywalls/PaywallData.swift",
        "Paywalls/PaywallFontManagerType.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/PurchaseParams.swift",
        "Purchasing/Purchases/Purchases.swift",
        "Purchasing/Purchases/PurchasesAreCompletedBy.swift",
        "Purchasing/Purchases/PurchasesDelegate.swift",
        "Purchasing/Purchases/PurchasesOrchestrator.swift",
        "Purchasing/Purchases/PurchasesType.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/WinBackOffer.swift",
        "Purchasing/TransactionsFactory.swift",
        "Purchasing/TransactionsManager.swift",
        "Purchasing/TrialOrIntroPriceEligibilityChecker.swift",
        "Security/FakeSigning.swift",
        "Security/HTTPRequest+Signing.swift",
        "Security/HTTPRequestBody+Signing.swift",
        "Security/Signing+ResponseVerification.swift",
        "Security/Signing.swift",
        "Security/VerificationResult.swift",
        "SubscriberAttributes/AttributionDataMigrator.swift",
        "SubscriberAttributes/AttributionKey.swift",
        "SubscriberAttributes/ReservedSubscriberAttributes.swift",
        "SubscriberAttributes/SubscriberAttribute.swift",
        "SubscriberAttributes/SubscriberAttributesManager.swift",
        "Support/BeginRefundRequestHelper.swift",
        "Support/DebugUI/DebugContentViews.swift",
        "Support/DebugUI/DebugView.swift",
        "Support/DebugUI/DebugViewController.swift",
        "Support/DebugUI/DebugViewModel.swift",
        "Support/DebugUI/DebugViewSheetPresentation.swift",
        "Support/DebugUI/ProductStatus+Icon.swift",
        "Support/DebugUI/SDKHealthCheckStatus+Icon.swift",
        "Support/DebugUI/SDKHealthStatus+Icon.swift",
        "Support/FrameworkDisambiguation.swift",
        "Support/HealthReport+Validate.swift",
        "Support/ManageSubscriptionsHelper.swift",
        "Support/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.