Skip to content

Releases: Ramiz69/PurchaseKit

Release 1.0.4

19 Sep 15:57

Choose a tag to compare

What's changes?

  • Fixed error on Xcode 26 & Swift 6.2

📦 Installation

.package(url: "https://github.com/Ramiz69/PurchaseKit.git", from: "1.0.4")

📚 Documentation

Release 1.0.3

30 Aug 15:49

Choose a tag to compare

🚀 What’s New

  • Entitlement & Subscription helpers
    • PurchasesManager.hasEntitlement(for:)
    • PurchasesManager.entitlementProductIDs()
    • PurchasesManager.activeSubscriptions()
    • PurchasesManager.activeSubscription(inGroup:)
  • StoreProduct
    • Added subscriptionGroupID (for auto-renewable subs).
  • Docs
    • Expanded DocC with usage examples for entitlements and groups.
    • Updated Getting Started and Overview.

🧠 Behavior Notes

  • requestProducts(includingCache: true) returns cached products instantly and refreshes entitlements in the background so isPurchased stays accurate.
  • restore() now performs a full entitlement refresh.
  • isPurchased on StoreProduct mirrors Transaction.currentEntitlements.

🧩 API Surface

// PurchasesProtocol / PurchasesManager
func hasEntitlement(for productID: String) async -> Bool
func entitlementProductIDs() async -> Set<String>
func activeSubscriptions() async -> [StoreProduct]
func activeSubscription(inGroup groupID: String) async -> StoreProduct?

// StoreProduct
public let subscriptionGroupID: String?

✨ Examples

// Gate a feature:
let hasPro = await PurchasesManager.shared.hasEntitlement(for: "com.myapp.pro")

// List active subs:
let subscriptions = await PurchasesManager.shared.activeSubscriptions()

// Pick active sub in a group:
if let active = await PurchasesManager.shared.activeSubscription(inGroup: "com.myapp.subscriptions.premium") {
    print("Active plan:", active.displayName)
}

📦 Installation

.package(url: "https://github.com/Ramiz69/PurchaseKit.git", from: "1.0.3")

📚 Documentation

Release 1.0.2

17 Aug 15:24

Choose a tag to compare

What's Changed

  • Added Product property inside StoreProduct

📦 Installation

Using Swift Package Manager:

.package(url: "https://github.com/Ramiz69/PurchaseKit.git", from: "1.0.2")

📚 Documentation

Release 1.0.1

16 Aug 08:29
b5f7de0

Choose a tag to compare

What's Changed

  • fixed extension of PurchasesProtocol by @Ramiz69 in #2

📦 Installation

Using Swift Package Manager:

.package(url: "https://github.com/Ramiz69/PurchaseKit.git", from: "1.0.1")

📚 Documentation

Release 1.0.0

17 May 18:09

Choose a tag to compare

Initial stable release of RKPurchaseKit — a lightweight Swift framework for in-app purchases with StoreKit 2.

✨ Features

  • ✅ Swift Concurrency-native API using async/await
  • ✅ PurchasesManager implemented as a Swift actor for thread-safety
  • ✅ Static linking support (.static target type)
  • ✅ Built-in DocC documentation
  • ✅ Supports all major platforms:
    - iOS 15+
    - macOS 12+
    - watchOS 8+
    - tvOS 15+
    - visionOS 1.0+
  • ✅ Clean protocol-based architecture for mocking/testing
  • ✅ Easily extendable and SPM-compatible

📦 Installation

Using Swift Package Manager:

.package(url: "https://github.com/Ramiz69/PurchaseKit.git", from: "1.0.0")

📚 Documentation