manage_iap_subscriptions 0.1.0 copy "manage_iap_subscriptions: ^0.1.0" to clipboard
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_unavailable if there is no foreground UIWindowScene.
  • subscription_management_failed if StoreKit cannot present the sheet.
  • unsupported_platform when 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_attached if the plugin is not attached to a Flutter engine.
  • play_store_unavailable if the Google Play Store app cannot handle the intent.
  • subscription_management_failed for 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