storekit

Implement StoreKit 2 in-app purchases and subscription workflows on iOS.

Updated May 10, 2026
One-click install
npx skills add https://github.com/FelixRauch/medat-figuren --skill storekit-felixrauch
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: storekit
Source: https://github.com/FelixRauch/medat-figuren/tree/main/.agents/skills/storekit
Command: npx skills add https://github.com/FelixRauch/medat-figuren --skill storekit-felixrauch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps developers correctly implement in-app purchases and subscriptions on iOS so users can buy, restore, and retain access reliably while meeting App Store requirements.

Core Features & Use Cases

  • StoreKit 2 purchase flows: Implement purchases with Product and handle success, pending, and userCancelled outcomes.
  • Secure entitlement management: Verify transactions, check revocationDate, and update access using Transaction.currentEntitlements and listeners.
  • Subscription paywall UI: Build subscription experiences with SubscriptionStoreView and StoreView, including restore purchases, redemption codes, and policy links.
  • Lifecycle resilience: Process Transaction.updates, handle unfinished transactions, and support refunds/revocations and Ask to Buy.

Quick Start

Use the storekit skill to implement a StoreKit 2 subscription paywall that verifies transactions, finishes them after delivering entitlements, and keeps entitlements synced via Transaction.updates.

Frequently Asked Questions about storekit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement StoreKit 2 subscription paywalls in SwiftUI?

StoreKit 2 subscription paywalls are implemented using `SubscriptionStoreView` and `StoreView` APIs to present purchase options, handle restore purchases, redemption codes, and display policy links while verifying transactions securely.

What is the correct way to handle pending transactions and Ask to Buy in iOS in-app purchases?

Pending transactions and Ask to Buy flows require checking the `.pending` result in the purchase outcome, deferring access until approval, and monitoring `Transaction.updates` to finish the transaction only after entitlements are successfully granted.

How do I verify entitlements and manage revocation for auto-renewing subscriptions?

Entitlement verification uses `Transaction.currentEntitlements` and transaction listeners to check the `revocationDate` property, ensuring access is updated or revoked immediately when refunds occur or subscription status changes.

Do I need to call transaction.finish() after delivering entitlements for consumables and non-consumables?

Calling `transaction.finish()` is required after granting access for all product types, including consumables, non-consumables, and auto-renewing subscriptions, to remove the transaction from the payment queue and prevent duplicate processing.

What's the best way to sync unfinished transactions across app launches for iOS subscriptions?

Syncing unfinished transactions requires processing `Transaction.updates` on launch to verify and deliver any pending entitlements, handling `revocationDate` changes, and calling `transaction.finish()` only after access is successfully restored.