Guide to Auto-Renewable Subscriptions in Swift

Anurag Pandey

AccuWeather Senior iOS Developer

June 4, 2021

Image

Auto-renewable subscription is an iOS purchase category that allows developers to monetize their apps by charging for the content or features. To offer subscriptions, you’ll need to implement StoreKit APIs in your app, configure your subscriptions in App Store Connect and assign them to a subscription group (a group of subscriptions with different access levels, prices, and durations).


So let's dive into implementing auto-renewable subscriptions and make some money.

Configure the Subscription Product

Step 1: Set up a subscription product in App Store Connect

Login to the iTunes Connect in-app purchases and create a subscription product as shown below:

In-App Purchases

Configure Your Subscription Product Here

Image

In-App Purchases

Configure Your Subscription Product Here

Image

In-App Purchases

Configure Your Subscription Product Here

Image

Step 2: Generate app-specific shared secret key

Now that you have set up the subscription product on iTunes Connect, you need a way to fetch subscription details on the app. Apple does not provide anything built into iOS or a REST API that gives you simple subscription details. Apple does have an API (receipt validation API) that when given a user's local receipt and a shared secret generated in iTunes Connect, it returns a JSON object of the user's purchase history for your app, including their current subscription information.

 

In order to access the receipt validation API, you need an app-specific shared secret key. Generate the shared secret key and never regenerate it if you have a live app and use it on the App Store.

App-Specific Shared Secret

This is where you Manage App-Specific Shared Secret

Image

App-Specific Shared Secret

This is where you Manage App-Specific Shared Secret

Image

Let's Dive Into Coding

Now we have all the configuration done, we can get into some coding.

Step 3: Create StorekitHandler

First, create a StoreKitHandler class that imports StoreKit. Here is a code sample of how to initialize StorekitHandler that pulls all the products from the App Store:
Image
StoreKitHandler needs to conform to SKPaymentTransactionObserver and SKProductsRequestDelegate. With our SKProductsRequest delegate set and the request started, we need a way to grab the response and implement the SKProductsRequest delegate method:
Image

Step 4: Initiate a purchase and restore a request

Now we are all set up to handle the purchase request, let’s get into how to initiate a purchase and restore a request:
Image

Step 5: Confirm request is successful

If your product request is successful, we just need to observe the purchase response SKPaymentTransactionObserver’s paymentQueue method. paymentQueue method contains a list of transactions and each transaction has transactionState as below:
Image
Your app may need to support multiple countries and is supposed to show the price in a localized currency. Apple has made that easy for us. SKProduct contains price details and can be accessed as below:
Image
A successful purchase event in the paymentQueue method doesn’t signify a successful purchase, because a successful purchase event means that purchase was done in the past. It doesn’t mean a subscription is valid. To verify the validity of a subscription product, we need to validate receipt.

Subscription Best Practices

Here are a few important best practices to work by:

 

    1. Never store subscription data such as prices and descriptions for example, in your app. Always rely on Apple for this latest data. This will give you the ability to change prices and make unique promotional offerings without releasing a new app version.

 

  1. Describe your subscription clearly so your users know exactly what they’re buying. Also a clear description is required from Apple to avoid any App Store rejections.

Anurag Pandey

Anurag Pandey

AccuWeather Senior iOS Developer

An iOS enthusiast with a passion to dive deeply into architectures, design patterns, standard principles and explore new technologies.

AccuWeather Enterprise Solutions, the world's leading commercial weather source partnering with more than 240 of Fortune 500 companies and thousands of businesses and government agencies worldwide, provides the most accurate, actionable weather data, forecasts, and intelligence that saves lives, protects property, drives revenue, minimizes risk, increases productivity, and more for clients worldwide. AccuWeather Enterprise Solutions has focused on the business impacts of weather for over 50 years, serving clients in all 50 states in the United States and worldwide including all of North America, Europe, Africa, Australia, South America and Asia. Clients across all industries rely on AccuWeather Enterprise Solutions for the most accurate weather information and insights to drive quantifiable business results. Government and emergency management agencies also rely on AccuWeather for the best forecasts of severe weather events - floods, tornadoes, hurricanes, cyclones and others - available from any source. By forecasting and communicating the weather the most accurately and effectively worldwide, focusing on impacts - telling people how, why, and what they need to do in order to save lives and minimize losses - AccuWeather has saved tens of thousands of lives and tens of billions of dollars in property damage.

Related Posts

Press Release

AccuWeather CEO Steven R. Smith Winner of Greater Philadelphia EY Entrepreneur Of The Year® Award, Named National Finalist

Philadelphia native and AccuWeather intern turned CEO, Smith wins regional award recognizing his leadership, innovation, and long-term business impact  Release Summary  – Steven R. Smith, CEO of AccuWeather, named national finalist for the EY Entrepreneur Of The Year® after winning the Greater Philadelphia region   – Panel of independent judges selected Smith based on his entrepreneurial spirit, purpose-driven leadership, and record of building...

Fri, 12 Jun 2026 14:22:59 GMT

Press Release

AccuWeather® Experts: El Niño is Imminent, Could Have Profound Impacts on the U.S.

News Release Summary – Quick Start to the Pacific Hurricane Season: Named earlier this week, Tropical Storm Cristina is the third named storm of the Eastern Pacific Season - well ahead of average pace – Drought Impact: The probability of extreme events increases with a stronger El Niño, including both heavy rain and drought – Will...

Wed, 10 Jun 2026 14:39:01 GMT

Press Release

Latest Analysis Shows El Niño Has Arrived, Official Declaration May Be Imminent

Based on the latest oceanic and atmospheric data, AccuWeather expert meteorologists believe El Niño conditions are now established in the tropical Pacific. "The sea surface temperatures are quickly rising in the equatorial Pacific, the region that is measured for El Niño. The latest weekly numbers are averaging out just over 0.5 degrees Celsius, compared to...

Fri, 05 Jun 2026 19:36:02 GMT