iOS 15 In-App Subscription Management Changes
With the release of iOS 15, Apple introduced significant updates to developer subscription management by adding native, in-app management interfaces powered by StoreKit 2. This update eliminated the need to redirect users out of an application into the external Settings app or App Store to manage their auto-renewable subscriptions, creating a smoother and more focused user experience directly within the app interface.
The Native In-App Management Sheet
Prior to iOS 15, developers had to rely on external URLs (such as
https://apps.apple.com/account/subscriptions) to send users
to the central Apple ID account settings. In iOS 15, Apple added the
showManageSubscriptions(in:) API. When called, the system
renders a native modal sheet directly over the current app view,
allowing users to review options without leaving the application
context.
App-Specific Context
The iOS 15 management sheet specifically displays the subscription options and service tiers relevant only to the calling app. Unlike the global iOS subscription settings page, which lists every active and expired subscription tied to an Apple ID, the in-app sheet keeps the user focused on the current application's plans, service tiers, and billing cycles.
Direct Plan Modifications and Cancellations
Inside the native sheet, users can perform standard subscription management actions:
- Upgrade or downgrade between different tiers within the same subscription group.
- Switch between billing intervals (such as moving from monthly to annual plans).
- Cancel auto-renewal for active plans.
- Resubscribe to lapsed subscriptions.
Once the user completes or dismisses the action, the sheet closes, immediately returning control to the host application.
Integrated In-App Refund Requests
Alongside the subscription management interface, iOS 15 introduced
native refund support via the beginRefundRequest(for:in:)
API. Developers can display a native sheet that allows customers to
select a transaction, choose a reason for the refund, and submit the
request directly to Apple without contacting external support
channels.