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.6.1
🔧 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 fetchResult = await iap.fetchProducts(
ProductRequest(
skus: ['product_id'],
type: ProductQueryType.InApp,
),
);
final products = fetchResult.inAppProducts();
// 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
📄 License
MIT License - see LICENSE file for details.
Libraries
- builders
- enums
- errors
- Error types for flutter_inapp_purchase (OpenIAP compliant)
- events
- extensions/purchase_helpers
- flutter_inapp_purchase
- helpers
- types
- utils