Skip to content

Releases: MrPalme/PurchaseKit-iOS

SwiftUI Convenience Layer (Host + UI)

Choose a tag to compare

@MrPalme MrPalme released this 17 Feb 21:17

This release adds a SwiftUI “convenience layer” on top of the core StoreKit 2 backend.

What’s new
• SwiftUI bootstrap
• PurchaseKitHost to own a single PurchaseKitManager (@StateObject) and inject it via EnvironmentObject
• View.installPurchaseKit(...) helpers (basic, with optional NetworkService, or custom manager factory)
• Package-ready UI components
• PurchaseKitPurchaseButton with sensible defaults and full customization via title/icon/tint providers
• Default localization keys resolved from Bundle.module
• Toolbar menu + legal actions
• PurchaseKitInfoToolbar with optional Terms/Privacy URLs, Info sheet, Restore, and Manage Subscriptions entry
• PurchaseKitSafariView for in-app web presentation
• Documentation
• Updated usage examples and setup guidance

Notes
• Minimum requirements unchanged (iOS 16+, StoreKit 2)
• No breaking API changes intended (compatible with v0.1.0 core)

PurchaseKit v0.1.0

PurchaseKit v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@MrPalme MrPalme released this 17 Feb 07:56

🎉 Initial release

PurchaseKit is an app-agnostic StoreKit 2 backend as a Swift Package.

Highlights

  • StoreKit 2 product loading with caching (CachePolicy)
  • Purchase flow with verification + finishing transactions
  • Restore flow via AppStore.sync() and entitlement snapshot
  • Normalized entitlement model (EntitlementState) for feature gating
  • Type-erased options (AnyPurchaseOption) for stable delegate callbacks
  • Optional network awareness via NetworkService
  • SwiftUI-ready building blocks + ObservableObject state
  • Apache-2.0 licensed

Requirements

  • iOS 16+
  • Swift Package Manager
  • StoreKit 2

Language / Localization

PurchaseKit ships with Localizable.xcstrings:

  • English (en)
  • German (de)
  • You can override all strings in the host app by providing the same keys in your own localization files.

Notes

  • API may evolve until v1.0.0 (breaking changes possible in minor versions).