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 installin your iOS project (e.g.,example/ios).
- Minimum iOS deployment target is 15.0for 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=1to skip tests
- PRECOMMIT_TEST_CONCURRENCY=<N>to control concurrency (default 4)
- PRECOMMIT_FAIL_FAST=0to disable- --fail-fast
- PRECOMMIT_RUN_ALL_TESTS=0to only run changed tests
- ENFORCE_ANALYZE=1to 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
