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 SKHelper, reference main (b85d1a), with Swift 6.2 (beta) for macOS (SPM) on 28 Aug 2025 16:09:27 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/russell-archer/SKHelper.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/russell-archer/SKHelper
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at b85d1ac Update Configuration.plist sample
Updating files:  72% (8111/11243)
Updating files:  73% (8208/11243)
Updating files:  74% (8320/11243)
Updating files:  75% (8433/11243)
Updating files:  76% (8545/11243)
Updating files:  77% (8658/11243)
Updating files:  78% (8770/11243)
Updating files:  79% (8882/11243)
Updating files:  80% (8995/11243)
Updating files:  81% (9107/11243)
Updating files:  82% (9220/11243)
Updating files:  83% (9332/11243)
Updating files:  84% (9445/11243)
Updating files:  85% (9557/11243)
Updating files:  86% (9669/11243)
Updating files:  87% (9782/11243)
Updating files:  88% (9894/11243)
Updating files:  89% (10007/11243)
Updating files:  90% (10119/11243)
Updating files:  91% (10232/11243)
Updating files:  92% (10344/11243)
Updating files:  93% (10456/11243)
Updating files:  94% (10569/11243)
Updating files:  95% (10681/11243)
Updating files:  96% (10794/11243)
Updating files:  97% (10906/11243)
Updating files:  98% (11019/11243)
Updating files:  99% (11131/11243)
Updating files: 100% (11243/11243)
Updating files: 100% (11243/11243), done.
Cloned https://github.com/russell-archer/SKHelper.git
Revision (git rev-parse @):
b85d1ac716437024c2379c86c17349c33ad04c04
SUCCESS checkout https://github.com/russell-archer/SKHelper.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/russell-archer/SKHelper.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/7] Write sources
[3/7] Copying skhelper-logo.png
[3/7] Copying PrivacyInfo.xcprivacy
[3/7] Copying skhelper-logo-small.png
[6/7] Write swift-version-1EA4D86E10B52AF.txt
[8/39] Emitting module SKHelper
[9/42] Compiling SKHelper SKHelperUnwrappedVerificationResult.swift
[10/42] Compiling SKHelper OnProductsAvailable.swift
[11/42] Compiling SKHelper OnSubscriptionChange.swift
[12/42] Compiling SKHelper SKHelper+Extensions.swift
[13/42] Compiling SKHelper SKHelper.swift
[14/42] Compiling SKHelper SKHelperConfiguration.swift
[15/42] Compiling SKHelper SKHelperConstants.swift
[16/42] Compiling SKHelper SKHelperSubscriptionInfo.swift
[17/42] Compiling SKHelper SKHelperButtons.swift
[18/42] Compiling SKHelper SKHelperProductViewStyle.swift
[19/42] Compiling SKHelper SKHelperTapGesture.swift
[20/42] Compiling SKHelper SKHelperSubscriptionInfoManage.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Header.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Control.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Details.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Header.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Control.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Details.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
[21/42] Compiling SKHelper SKHelperSubscriptionStoreView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Header.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Control.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Details.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Header.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Control.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Details.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
[22/42] Compiling SKHelper resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Header.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Control.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:134:64: warning: capture of non-sendable type 'Details.Type' in an isolated closure
132 |             VStack {
133 |                 Text("No subscriptions available").font(.subheadline).padding()
134 |                 Button("Refresh Subscriptions") { Task { await store.requestProducts() }}
    |                                                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
135 |                 ProgressView()
136 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Header.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Header.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Control.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Control.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSubscriptionStoreView.swift:97:32: warning: capture of non-sendable type 'Details.Type' in an isolated closure
 95 |
 96 |     /// Creates the body of the view.
 97 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Details.Type' in an isolated closure
 98 |         if hasProducts {
 99 |             ScrollView {
[23/42] Compiling SKHelper OnTransaction.swift
[24/42] Compiling SKHelper SKHelperManagePurchaseView.swift
[25/42] Compiling SKHelper SKHelperProductView.swift
[26/42] Compiling SKHelper SKHelperPurchaseInfoManage.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:107:23: warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
105 |         var trailingInset: CGFloat
106 |
107 |         if #available(macOs 26, *) { trailingInset = 20 }
    |                       `- warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
108 |         else { trailingInset = 10 }
109 |
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: result of 'Divider' initializer is unused [#no-usage]
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: result of 'Divider' initializer is unused [#no-usage]
137 |     }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: code after 'return' will never be executed
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: code after 'return' will never be executed
137 |     }
138 | }
[27/42] Compiling SKHelper SKHelperPurchasesView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:107:23: warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
105 |         var trailingInset: CGFloat
106 |
107 |         if #available(macOs 26, *) { trailingInset = 20 }
    |                       `- warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
108 |         else { trailingInset = 10 }
109 |
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: result of 'Divider' initializer is unused [#no-usage]
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: result of 'Divider' initializer is unused [#no-usage]
137 |     }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: code after 'return' will never be executed
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: code after 'return' will never be executed
137 |     }
138 | }
[28/42] Compiling SKHelper SKHelperSheetBarView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:107:23: warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
105 |         var trailingInset: CGFloat
106 |
107 |         if #available(macOs 26, *) { trailingInset = 20 }
    |                       `- warning: unrecognized platform name 'macOs'; did you mean 'macOS'?
108 |         else { trailingInset = 10 }
109 |
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: result of 'Divider' initializer is unused [#no-usage]
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: result of 'Divider' initializer is unused [#no-usage]
137 |     }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperSheetBarView.swift:136:9: warning: code after 'return' will never be executed
134 |         }
135 |         .padding(EdgeInsets(top: 10, leading: 10, bottom: 0, trailing: trailingInset))
136 |         Divider()
    |         `- warning: code after 'return' will never be executed
137 |     }
138 | }
[29/42] Compiling SKHelper SKHelperPurchaseInfoFieldText.swift
[30/42] Compiling SKHelper SKHelperPurchaseInfoFieldView.swift
[31/42] Compiling SKHelper SKHelperPurchaseInfoMain.swift
[32/42] Compiling SKHelper SKHelperLog.swift
[33/42] Compiling SKHelper SKHelperNotification.swift
[34/42] Compiling SKHelper SKHelperProduct.swift
[35/42] Compiling SKHelper SKHelperPurchaseInfo.swift
[36/42] Compiling SKHelper SKHelperStoreView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:100:59: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 98 |             VStack {
 99 |                 Text("No products available").font(.subheadline).padding()
100 |                 Button("Refresh Products") { Task { await store.requestProducts() }}
    |                                                           `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
101 |                 ProgressView()
102 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:88:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 86 |
 87 |     /// Creates the body of the view.
 88 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
 89 |
 90 |         if hasProducts {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:63:25: warning: capture of non-sendable type 'Content.Type' in an isolated closure
61 |                 .SKHelperOnTapGesture {
62 |                     Task {
63 |                         purchased = await store.isPurchased(productId: selectedProductId)
   |                         `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
64 |                         selectedProductId = product.id
65 |                         productSelected = true
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:55:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
53 |
54 |     /// Creates the body of the view.
55 |     public var body: some View {
   |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
56 |         StoreView(products: products) { product in
57 |             Image(product.id)
[37/42] Compiling SKHelper SKHelperStoreViewBody.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:100:59: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 98 |             VStack {
 99 |                 Text("No products available").font(.subheadline).padding()
100 |                 Button("Refresh Products") { Task { await store.requestProducts() }}
    |                                                           `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
101 |                 ProgressView()
102 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:88:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 86 |
 87 |     /// Creates the body of the view.
 88 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
 89 |
 90 |         if hasProducts {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:63:25: warning: capture of non-sendable type 'Content.Type' in an isolated closure
61 |                 .SKHelperOnTapGesture {
62 |                     Task {
63 |                         purchased = await store.isPurchased(productId: selectedProductId)
   |                         `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
64 |                         selectedProductId = product.id
65 |                         productSelected = true
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:55:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
53 |
54 |     /// Creates the body of the view.
55 |     public var body: some View {
   |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
56 |         StoreView(products: products) { product in
57 |             Image(product.id)
[38/42] Compiling SKHelper SKHelperSubscriptionInfoMain.swift
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:100:59: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 98 |             VStack {
 99 |                 Text("No products available").font(.subheadline).padding()
100 |                 Button("Refresh Products") { Task { await store.requestProducts() }}
    |                                                           `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
101 |                 ProgressView()
102 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreView.swift:88:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
 86 |
 87 |     /// Creates the body of the view.
 88 |     public var body: some View {
    |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
 89 |
 90 |         if hasProducts {
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:63:25: warning: capture of non-sendable type 'Content.Type' in an isolated closure
61 |                 .SKHelperOnTapGesture {
62 |                     Task {
63 |                         purchased = await store.isPurchased(productId: selectedProductId)
   |                         `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
64 |                         selectedProductId = product.id
65 |                         productSelected = true
/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Views/SKHelperStoreViewBody.swift:55:32: warning: capture of non-sendable type 'Content.Type' in an isolated closure
53 |
54 |     /// Creates the body of the view.
55 |     public var body: some View {
   |                                `- warning: capture of non-sendable type 'Content.Type' in an isolated closure
56 |         StoreView(products: products) { product in
57 |             Image(product.id)
[39/42] Compiling SKHelper SKHelperEntitlementState.swift
[40/42] Compiling SKHelper SKHelperPurchaseState.swift
[41/42] Compiling SKHelper SKHelperSubscriptionState.swift
[42/42] Compiling SKHelper SKHelperTransactionUpdateReason.swift
Build complete! (24.65s)
Fetching https://github.com/apple/swift-docc-plugin.git
[1/2094] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin.git from cache (1.17s)
Computing version for https://github.com/apple/swift-docc-plugin.git
Computed https://github.com/apple/swift-docc-plugin.git at 1.4.5 (3.84s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3480] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.10s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.71s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin.git
Working copy of https://github.com/apple/swift-docc-plugin.git resolved at 1.4.5
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin.git"
    }
  ],
  "manifest_display_name" : "SKHelper",
  "name" : "SKHelper",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.6"
    }
  ],
  "products" : [
    {
      "name" : "SKHelper",
      "targets" : [
        "SKHelper"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SKHelper",
      "module_type" : "SwiftTarget",
      "name" : "SKHelper",
      "path" : "Sources/SKHelper",
      "product_memberships" : [
        "SKHelper"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Resources/images/skhelper-logo-small.png",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SKHelper/Resources/images/skhelper-logo.png",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Core/SKHelper+Extensions.swift",
        "Core/SKHelper.swift",
        "Core/SKHelperConfiguration.swift",
        "Core/SKHelperConstants.swift",
        "Core/SKHelperLog.swift",
        "Core/SKHelperNotification.swift",
        "Core/SKHelperProduct.swift",
        "Core/SKHelperPurchaseInfo.swift",
        "Core/SKHelperSubscriptionInfo.swift",
        "Styles/SKHelperButtons.swift",
        "Styles/SKHelperProductViewStyle.swift",
        "Styles/SKHelperTapGesture.swift",
        "Support/SKHelperEntitlementState.swift",
        "Support/SKHelperPurchaseState.swift",
        "Support/SKHelperSubscriptionState.swift",
        "Support/SKHelperTransactionUpdateReason.swift",
        "Support/SKHelperUnwrappedVerificationResult.swift",
        "ViewModifiers/OnProductsAvailable.swift",
        "ViewModifiers/OnSubscriptionChange.swift",
        "ViewModifiers/OnTransaction.swift",
        "Views/SKHelperManagePurchaseView.swift",
        "Views/SKHelperProductView.swift",
        "Views/SKHelperPurchaseInfoFieldText.swift",
        "Views/SKHelperPurchaseInfoFieldView.swift",
        "Views/SKHelperPurchaseInfoMain.swift",
        "Views/SKHelperPurchaseInfoManage.swift",
        "Views/SKHelperPurchasesView.swift",
        "Views/SKHelperSheetBarView.swift",
        "Views/SKHelperStoreView.swift",
        "Views/SKHelperStoreViewBody.swift",
        "Views/SKHelperSubscriptionInfoMain.swift",
        "Views/SKHelperSubscriptionInfoManage.swift",
        "Views/SKHelperSubscriptionStoreView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.