flutter_inapp_purchase 6.8.8
flutter_inapp_purchase: ^6.8.8 copied to clipboard
In App Purchase plugin for flutter. This project has been forked by react-native-iap and we are willing to share same experience with that on react-native.
flutter_inapp_purchase #

A comprehensive Flutter plugin for implementing in-app purchases that conforms to the Open IAP specification
π Documentation #
π Visit our comprehensive documentation site β
π¦ Installation #
dependencies:
flutter_inapp_purchase: ^6.8.8
π§ Quick Start #
Basic Usage #
import 'package:flutter_inapp_purchase/flutter_inapp_purchase.dart';
// Create instance
final iap = FlutterInappPurchase();
// Initialize connection
await iap.initConnection();
// Fetch products
final products = await iap.fetchProducts(
ProductRequest(
skus: ['product_id'],
type: ProductQueryType.InApp,
),
);
// Request purchase (builder DSL)
await iap.requestPurchaseWithBuilder(
build: (builder) {
builder
..type = ProductQueryType.InApp
..android.skus = ['product_id']
..ios.sku = 'product_id';
},
);
iOS Notes #
- This plugin uses the OpenIAP Apple native module via CocoaPods (
openiap 1.1.9
). - After upgrading, run
pod install
in your iOS project (e.g.,example/ios
). - Minimum iOS deployment target is
15.0
for StoreKit 2 support.
π οΈ Development #
- 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.
- Tests: runs changed tests first, then full suite (fail-fast).
- Env toggles:
SKIP_PRECOMMIT_TESTS=1
to skip testsPRECOMMIT_TEST_CONCURRENCY=<N>
to control concurrency (default 4)PRECOMMIT_FAIL_FAST=0
to disable--fail-fast
PRECOMMIT_RUN_ALL_TESTS=0
to only run changed testsENFORCE_ANALYZE=1
to fail commit on analyzer warnings
Singleton Usage #
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
Sponsors #
πΌ View Our Sponsors
π License #
MIT License - see LICENSE file for details.