storekit

Implement StoreKit 2 in-app purchases and subscription management for iOS.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/KumarAdi8/AgentKit --skill storekit-kumaradi8
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: storekit
Source: https://github.com/KumarAdi8/AgentKit/tree/main/skills/storekit
Command: npx skills add https://github.com/KumarAdi8/AgentKit --skill storekit-kumaradi8

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill removes the complexity of implementing, verifying, and maintaining in-app purchases and subscription paywalls on iOS by providing concrete StoreKit 2 patterns, checks, and best practices that prevent common revenue and compliance mistakes.

Core Features & Use Cases

  • Product Loading & Display: Guidance for loading Product objects and rendering paywalls with SubscriptionStoreView and StoreView.
  • Purchase Flow & Verification: Step-by-step handling of purchase results, verification of transactions, and correct use of transaction.finish().
  • Entitlement Management: Patterns for currentEntitlements, Transaction.updates listener, restore/sync flows, and revocation/ refund handling.
  • Advanced Scenarios: Offer codes, promotional and win-back offers, introductory offers, family sharing, billing retry and grace periods, server-side JWS validation, and StoreKit testing configuration.
  • Compliance & Review Prep: Checklist items to avoid App Store rejections such as restore buttons, clear subscription terms, and proper use of StoreKit APIs.

Quick Start

Start your app with a Transaction.updates listener at launch, load products via Product.products(for:), verify every successful purchase before granting access, and always call transaction.finish() after delivering content.

Frequently Asked Questions about storekit

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

FAQPage Schema
How do I implement in-app purchases and subscriptions with StoreKit 2 in SwiftUI?

StoreKit 2 in-app purchase implementation uses Product.products(for:) to load products, SubscriptionStoreView for rendering paywalls, and Transaction.updates listeners to verify purchases and grant entitlements. You call transaction.finish() after delivering content.

How does transaction verification work for iOS auto-renewing subscriptions?

Transaction verification for iOS auto-renewing subscriptions is handled by checking Transaction.updates and currentEntitlements to validate JWS signatures, confirm purchase results, and grant access only after verification succeeds before calling transaction.finish().

What's the best way to restore previous purchases and sync subscription status in Swift?

Restoring previous purchases and syncing subscription status in Swift uses currentEntitlements to check active access, Transaction.updates to catch revocations or refunds, and explicit restore buttons to satisfy App Store review compliance requirements.

Can I handle offer codes, Family Sharing, and win-back offers using StoreKit 2?

StoreKit 2 supports offer codes, promotional and win-back offers, introductory offers, and Family Sharing by managing product loading, purchase result handling, and entitlement checks to deliver these advanced subscription scenarios.

Why is my StoreKit paywall getting rejected during App Store review?

App Store paywall rejections often occur when subscription terms are unclear, restore buttons are missing, or StoreKit APIs are misused. Ensure clear subscription terms display and proper transaction.finish() semantics to pass review.

Do I need server-side JWS validation for StoreKit 2 transaction verification?

Server-side JWS validation for StoreKit 2 transaction verification is required to securely validate in-app purchases and subscription entitlements server-side, preventing fraud and ensuring accurate access control for auto-renewing subscriptions.