storekit

Implement StoreKit 2 in-app purchases and subscriptions for iOS and macOS apps.

Updated Apr 19, 2026
One-click install
npx skills add https://github.com/femitz/flyby --skill storekit-femitz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: storekit
Source: https://github.com/femitz/flyby/tree/main/.agents/skills/storekit
Command: npx skills add https://github.com/femitz/flyby --skill storekit-femitz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Simplifies implementing in-app purchases and subscriptions using StoreKit 2, eliminating reliance on legacy StoreKit APIs and ensuring reliable entitlements and storefront flows.

Core Features & Use Cases

  • Loading products with Product.products(for:)
  • Handling purchases, transaction updates, and entitlement checks
  • Restoring purchases and implementing paywalls with SubscriptionStoreView and StoreView
  • Testing and debugging with StoreKit Configuration and the StoreKit testing tools

Quick Start

Define your product IDs, start the Transaction.updates listener at launch, and build a basic paywall flow to begin processing purchases.

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 in-app purchases for iOS apps?

StoreKit 2 in-app purchases are implemented using Product.products(for:) to load items, handling purchase flows with Transaction APIs, and starting a Transaction.updates listener at app launch to process transactions and verify entitlements.

What's the best way to handle auto-renewable subscriptions with StoreKit 2?

Auto-renewable subscriptions in StoreKit 2 are handled by loading subscription products, processing purchases through Transaction APIs, and tracking entitlement status via the Transaction.updates listener to manage renewal states and access rights.

How do I build a paywall using SubscriptionStoreView in SwiftUI?

A paywall is built in SwiftUI using SubscriptionStoreView or StoreView to display products, handling the purchase flow through StoreKit 2 Transaction APIs, and verifying entitlements to gate access after successful transactions.

Can I test StoreKit 2 in-app purchases locally without App Store Connect?

Local StoreKit 2 testing is supported using a StoreKit Configuration file and StoreKit testing tools, allowing you to simulate purchase flows, transaction updates, and entitlement checks for consumables, non-consumables, and subscriptions.

Do I need a Transaction.updates listener for StoreKit 2 entitlement management?

A Transaction.updates listener is required at app launch for StoreKit 2 entitlement management, as it processes transaction updates, verifies purchase validity, and ensures entitlements are synchronized when purchases or renewals occur.

What is the difference between StoreKit 2 and legacy StoreKit for handling purchases?

StoreKit 2 replaces legacy StoreKit APIs with a modern Swift-based approach using Product and Transaction types, eliminating delegates and simplifying product loading, purchase flows, restoration, and entitlement verification across consumables and subscriptions.