manage_iap_subscriptions 0.1.0
manage_iap_subscriptions: ^0.1.0 copied to clipboard
Opens the native App Store or Google Play subscription management UI from Flutter.
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