Skip to content

v1.1.0

Choose a tag to compare

@emreozdil emreozdil released this 23 Feb 22:46
· 3 commits to main since this release

What's New

Fully Automatic Purchase Tracking

Purchases are now tracked automatically — no code changes needed beyond SpendOwl.configure(apiKey:).

The SDK uses three complementary listeners to capture every purchase:

  • SKPaymentTransactionObserver — catches the first purchase in the same session
  • Transaction.updates — catches renewals, cross-device, Ask to Buy, and offer codes
  • Transaction.currentEntitlements — startup safety net for missed purchases

Deduplication is handled atomically via transactionId. The SDK is fully read-only — transaction.finish() is never called, so it works alongside RevenueCat, Adapty, or any other StoreKit integration.

Other Changes

  • Thread-safe EventQueue with NSLock
  • Improved pre-commit checks in CLAUDE.md
  • New tests for PurchaseEvent optional fields and transaction ID bounds

Full Changelog: v1.0.0...v1.1.0