A comprehensive Flutter plugin for implementing in-app purchases that conforms to the Open IAP specification
📖 Visit our comprehensive documentation site →
dependencies:
flutter_inapp_purchase: ^6.4.0
import 'package:flutter_inapp_purchase/flutter_inapp_purchase.dart';
// Create instance
final iap = FlutterInappPurchase();
// Initialize connection
await iap.initConnection();
// Get products
final products = await iap.requestProducts(
skus: ['product_id'],
type: PurchaseType.inapp,
);
// Request purchase
await iap.requestPurchase(
request: RequestPurchase(
ios: RequestPurchaseIOS(sku: 'product_id'),
android: RequestPurchaseAndroid(skus: ['product_id']),
),
type: PurchaseType.inapp,
);
- This plugin uses the OpenIAP Apple native module via CocoaPods (
openiap ~> 1.1.7
). - After upgrading, run
pod install
in your iOS project (e.g.,example/ios
). - Minimum iOS deployment target is
15.0
for StoreKit 2 support.
- Install dependencies:
flutter pub get
- Run lints:
dart analyze
- Run tests:
flutter test
- Enable Git hooks (recommended):
git config core.hooksPath .githooks
- The pre-commit hook auto-formats staged Dart files and fails if any file remains unformatted. It also runs tests.
- To run tests in the hook, set
RUN_PRECOMMIT_TESTS=1
in your environment. - To make analyzer failures block commits, set
ENFORCE_ANALYZE=1
.
For global state management or when you need a shared instance:
// Use singleton instance
final iap = FlutterInappPurchase.instance;
await iap.initConnection();
// The instance is shared across your app
final sameIap = FlutterInappPurchase.instance; // Same instance
MIT License - see LICENSE file for details.