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.