FlutterStoreKit Library
FlutterStoreKit is a Flutter library that provides functionality for managing in-app purchases and subscriptions.
This documentation outlines how to use the FlutterStoreKit library in your Flutter app.
π οΈ Platform Configuration
iOS Configuration
Configure Info.plist (iOS 14+)
Add the following to your ios/Runner/Info.plist:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>itms-apps</string>
</array>
Android Configuration
Update build.gradle
Ensure your android/app/build.gradle has the minimum SDK version:
android {
compileSdkVersion 34
defaultConfig {
minSdkVersion 21 // Required minimum
targetSdkVersion 34
}
}
Enable ProGuard Rules (if using ProGuard)
Add to your android/app/proguard-rules.pro:
# In-App Purchase
-keep class com.amazon.** {*;}
-keep class dev.hyo.** { *; }
-keep class com.android.vending.billing.**
-dontwarn com.amazon.**
-keepattributes *Annotation*
βοΈ 1. Initialize the Store
Initialize the store with your product IDs:
void main() {
StoreKit.instance.initialize([
'subscription_id1',
'subscription_id2',
'subscription_id3',
]);
}
π 2. Add Listeners
Add Pro Status Changed Listener
Add a listener for pro status changes:
void _onProStatusChanged() {
// Update UI based on purchase status
}
StoreKit.instance.addProStatusChangedListener(_onProStatusChanged);
Remove Pro Status Changed Listener
Remove a listener for pro status changes:
StoreKit.instance.removeProStatusChangedListener(_onProStatusChanged);
Add Error Listener
Add a listener for errors:
void _onError(String error) {
// Handle error
print("Error: $error");
}
StoreKit.instance.addErrorListener(_onError);
Remove Error Listener
Remove a listener for errors:
StoreKit.instance.removeErrorListener(_onError);
π³ 3. Purchases
Restore Past Purchases
Restore past purchases for the user:
await StoreKit.instance.restorePastPurchases(context);
Purchase a Subscription
Purchase a subscription item:
await StoreKit.instance.purchaseSubscription(subscriptionItem);
Open Subscription Management Page
Open the subscription management page for the user:
await StoreKit.instance.manageSubscription();
Check if Product is Purchased
Check if a product has been purchased:
bool purchased = StoreKit.instance.isProductPurchased('product_id');
Get Purchased Product IDs
Get a list of purchased product IDs:
List<String> purchasedIds = StoreKit.instance.getPurchasedProductIds();
π§Ή 4. Disposal
Dispose of the store instance when no longer needed:
StoreKit.instance.dispose();
π License
This project is licensed under the MIT License β see the LICENSE file for details.