manage_iap_subscriptions
A focused Flutter plugin that opens the current platform's native subscription management interface.
The package intentionally exposes a single function:
await showManageSubscriptions();
It does not purchase, restore, query, validate, or synchronize subscriptions.
Supported platforms
| Platform | Minimum version | Behavior |
|---|---|---|
| iOS | 15.0 | Presents StoreKit's App Store subscription management sheet for the current app. |
| Android | API 24 | Opens the Google Play subscriptions center in the Play Store app. |
Other platforms and stores are not supported.
Development
The Flutter SDK version is pinned through .fvmrc. Install and use it with:
fvm install
fvm flutter pub get
fvm flutter test
Installation
Add the package to your pubspec.yaml:
dependencies:
manage_iap_subscriptions: ^0.1.0
Then run:
flutter pub get
Usage
import 'package:flutter/services.dart';
import 'package:manage_iap_subscriptions/manage_iap_subscriptions.dart';
Future<void> openSubscriptionManagement() async {
try {
await showManageSubscriptions();
} on PlatformException catch (error) {
// Show an error appropriate for your app.
print('Could not open subscription management: ${error.message}');
}
}
The future completing does not mean that the user changed or cancelled a subscription. The stores do not return that information through this API.
Platform behavior
iOS
The plugin calls AppStore.showManageSubscriptions(in:). StoreKit determines
whether the sheet displays production, sandbox, TestFlight, or local StoreKit
test data.
The call can fail with:
window_scene_unavailableif there is no foregroundUIWindowScene.subscription_management_failedif StoreKit cannot present the sheet.unsupported_platformwhen an iOS app is running on macOS or through Mac Catalyst.
Android
The plugin opens:
https://play.google.com/store/account/subscriptions
in the Google Play Store app. This shows the current Play account's subscription center. The plugin deliberately does not accept a product ID and therefore does not deep-link to one specific subscription.
The call can fail with:
plugin_not_attachedif the plugin is not attached to a Flutter engine.play_store_unavailableif the Google Play Store app cannot handle the intent.subscription_management_failedfor another native launch error.
Scope
This package:
- Chooses the store based on the current device platform.
- Supports only Apple's App Store on iOS and Google Play on Android.
- Contains no purchase, restore, receipt, entitlement, or backend logic.
- Does not open Google Play management on iOS or App Store management on Android.
- Does not provide confirmation dialogs or other application UI.
Publishing
After the first version has been published manually and GitHub automated publishing has been enabled in the package's pub.dev Admin tab, publishing a GitHub Release automatically publishes the corresponding package version.
The release tag and pubspec.yaml version must match:
pubspec.yaml: 0.2.0
GitHub tag: v0.2.0
Configure pub.dev automated publishing with:
Repository: dieringe/manage_iap_subscriptions
Tag pattern: v{{version}}
Draft releases do not publish the package. The workflow starts when the release is published.
License
MIT