Skip to content

Releases: lynnswap/StoreTransactionKit

v0.1.0-beta.4

v0.1.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@lynnswap lynnswap released this 23 Jul 12:20
83801f4

StoreTransactionKit v0.1.0-beta.4

StoreTransactionKit centralizes verified StoreKit transaction handling, entitlement reconciliation, and Transaction.finish() authority in one process-owned, observable store.

This is a prerelease. Public API may change before the stable v0.1.0 release.

Requirements: Swift 6.3+; iOS 18.4+, macOS 15.4+, Mac Catalyst 18.4+, tvOS 18.4+, watchOS 11.4+, or visionOS 2.4+.

New Features

  • Define an App Store Connect auto-renewable subscription group with typed product identifiers, mapping multiple durations or service levels to app-defined entitlements.
  • Bridge the validated catalog to StoreKit product and subscription metadata through its subscription group ID, declaration-ordered Product IDs, and exact Product ID-to-entitlement lookup.
  • Use TransactionStore to process app-supplied purchase results, monitor verified deliveries and subscription-status changes, reconcile unfinished transactions and current entitlements, query history, restore purchases, and perform a drained shutdown.
  • Gate features with isEntitled(to:) while retaining explicit loading, failed, ready, and overridden entitlement states.
  • Automatically finish declared and upgraded same-group subscriptions, or provide an optional TransactionStoreDelegate for durable app-owned effects, out-of-group products, and background-failure notifications.
  • Handle valid same-group subscriptions unknown to the installed binary with an optional UnrecognizedSubscriptionDelegate, choosing whether to leave them unfinished, finish them, or map them to a known entitlement.
  • Override entitlements for previews, debug builds, UI tests, or app-defined distribution environments without starting StoreKit.
  • Test the production entitlement flow without a .storekit configuration using StoreTransactionKitTesting, including typed purchases, deterministic access loss, unrecognized subscriptions, arbitrary transaction deliveries, and TransactionStoreTestClock.
  • Diagnose transaction-store operations through typed errors with localized descriptions and recovery guidance.

Documentation

  • Includes app-owned Product.purchase(options:) and PurchaseIntent flows, automatic transaction monitoring, subscription-status reconciliation, unrecognized-product policies, entitlement overrides, and deterministic testing guidance.

v0.1.0-beta.3

v0.1.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@lynnswap lynnswap released this 23 Jul 10:47
b195b0c

StoreTransactionKit v0.1.0-beta.3

StoreTransactionKit centralizes verified StoreKit transaction handling, entitlement reconciliation, and Transaction.finish() authority in one process-owned, observable store.

This is a prerelease. Public API may change before the stable v0.1.0 release.

Requirements: Swift 6.3+; iOS 18.4+, macOS 15.4+, Mac Catalyst 18.4+, tvOS 18.4+, watchOS 11.4+, or visionOS 2.4+.

New Features

  • Define an App Store Connect auto-renewable subscription group with typed product identifiers, mapping multiple durations or service levels to app-defined entitlements.
  • Bridge the validated catalog to StoreKit product and subscription metadata through its subscription group ID, declaration-ordered Product IDs, and exact Product ID-to-entitlement lookup.
  • Use TransactionStore to monitor verified deliveries, reconcile unfinished transactions and current entitlements, process purchases, query history, restore purchases, and perform a drained shutdown.
  • Gate features with isEntitled(to:) while retaining explicit loading, failed, ready, and overridden entitlement states.
  • Automatically finish declared and upgraded same-group subscriptions, or provide an optional TransactionStoreDelegate for durable app-owned effects, out-of-group products, and background-failure notifications.
  • Handle valid same-group subscriptions unknown to the installed binary with an optional UnrecognizedSubscriptionDelegate, choosing whether to leave them unfinished, finish them, or map them to a known entitlement.
  • Override entitlements for previews, debug builds, UI tests, or app-defined distribution environments without starting StoreKit.
  • Test the production entitlement flow without a .storekit configuration using StoreTransactionKitTesting, including typed purchases, deterministic access loss, unrecognized subscriptions, arbitrary transaction deliveries, and TransactionStoreTestClock.
  • Diagnose transaction-store operations through typed errors with localized descriptions and recovery guidance.

Documentation

  • Includes a SwiftUI quick start, App Store Connect catalog mapping, StoreKit product metadata integration, subscription-level and app-feature modeling guidance, unrecognized-product policies, transaction lifecycle semantics, entitlement overrides, and deterministic testing guidance.

v0.1.0-beta.2

v0.1.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@lynnswap lynnswap released this 23 Jul 05:38
3b7fb4c

StoreTransactionKit v0.1.0-beta.2

StoreTransactionKit centralizes verified StoreKit transaction handling, entitlement reconciliation, and Transaction.finish() authority in one process-owned, observable store.

This is a prerelease. Public API may change before the stable v0.1.0 release.

Requirements: Swift 6.3+; iOS 18.4+, macOS 15.4+, Mac Catalyst 18.4+, tvOS 18.4+, watchOS 11.4+, or visionOS 2.4+.

New Features

  • Define an App Store Connect auto-renewable subscription group with typed product identifiers, mapping multiple durations or service levels to app-defined entitlements.
  • Use TransactionStore to monitor verified deliveries, reconcile unfinished transactions and current entitlements, process purchases, query history, restore purchases, and perform a drained shutdown.
  • Gate features with isEntitled(to:) while retaining explicit loading, failed, ready, and overridden entitlement states.
  • Automatically finish catalog-managed subscriptions, or provide an optional TransactionStoreDelegate for durable app-owned effects, unmanaged products, and background-failure notifications.
  • Override entitlements for previews, debug builds, UI tests, or app-defined distribution environments without starting StoreKit.
  • Test the production entitlement flow without a .storekit configuration using StoreTransactionKitTesting, typed synthetic purchases, and TransactionStoreTestClock.

Documentation

  • Includes a SwiftUI quick start, App Store Connect catalog mapping, transaction lifecycle semantics, entitlement overrides, and deterministic testing guidance.

v0.1.0-beta.1

v0.1.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@lynnswap lynnswap released this 17 Jul 09:37
da3b217

StoreTransactionKit v0.1.0-beta.1

New Features

  • Introduces TransactionStore, a process-owned, observable StoreKit 2 transaction pipeline that verifies transactions, applies app-owned durable handling, and finishes transactions only after handling succeeds.
  • Provides typed current-entitlement state with distinct resolving and resolved-empty states, plus refresh, history, explicit restore, direct purchase-result processing, background failure reporting, and controlled shutdown.
  • Exposes immutable verified transaction snapshots containing purchase, subscription, offer, storefront, pricing, revocation, and signed-revision metadata.
  • Supports iOS, Mac Catalyst, macOS, tvOS, watchOS, and visionOS, with platform-appropriate purchase entry points.

Documentation

  • Documents lifecycle ownership, at-least-once delivery, restore and cancellation behavior, multi-platform purchase integration, and deterministic app-hosted StoreKit testing.