flutter_inapp_purchase 6.0.0-rc.2
flutter_inapp_purchase: ^6.0.0-rc.2 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.
6.0.0-rc.1 #
Release Candidate #
This is a release candidate for v6.0.0 with significant breaking changes. Please test thoroughly before using in production.
Package Changes #
- Package: Changed package name from
dev.hyochan.flutterinapppurchasetodev.hyo.flutterinapppurchase - Documentation: Moved from
docs/todoc/directory for pub.dev convention - Version: First release candidate for v6.0.0 major version
Breaking Changes #
- iOS: Now requires iOS 11.0+ (previously 8.0+)
- iOS: StoreKit 2 is now used by default on iOS 15.0+ devices
- Android: Updated to Billing Client v8.0.0 (from v6.0.1)
- API: Complete refactoring of class structure and enum naming conventions
ErrorCodeenum values changed fromE_UNKNOWNtoeUnknown(lowerCamelCase)PeriodUnitIOSenum values changed fromDAYtoday(lowerCamelCase)- Platform-specific classes moved to mixins (
FlutterInappPurchaseIOS,FlutterInappPurchaseAndroid) - Channel access changed from static to instance member
New Features #
- iOS: Full StoreKit 2 support for iOS 15.0+
- Automatic transaction verification
- Better subscription management
- Improved error handling
- No receipt validation needed for StoreKit 2
- iOS: Automatic fallback to StoreKit 1 for iOS 11.0-14.x
- Android: Support for all Billing Client v8 features
- Architecture: New mixin-based architecture for better code organization
- Platform-specific code separated into
modules/ios.dartandmodules/android.dart - Improved testability and maintainability
- Platform-specific code separated into
Migration Guide #
- Update all
ErrorCodereferences:// Before ErrorCode.E_USER_CANCELLED // After ErrorCode.eUserCancelled - Update channel access in tests:
// Before FlutterInappPurchase.channel // After FlutterInappPurchase.instance.channel - StoreKit 2 will be used automatically on supported devices
- StoreKit Configuration files (.storekit) work with StoreKit 2 on iOS 15+
6.0.0 #
Breaking Changes #
- iOS: Now requires iOS 11.0+ (previously 8.0+)
- iOS: StoreKit 2 is now used by default on iOS 15.0+ devices
- Android: Updated to Billing Client v8.0.0 (from v6.0.1)
- API: Complete refactoring of class structure and enum naming conventions
ErrorCodeenum values changed fromE_UNKNOWNtoeUnknown(lowerCamelCase)PeriodUnitIOSenum values changed fromDAYtoday(lowerCamelCase)- Platform-specific classes moved to mixins (
FlutterInappPurchaseIOS,FlutterInappPurchaseAndroid) - Channel access changed from static to instance member
New Features #
- iOS: Full StoreKit 2 support for iOS 15.0+
- Automatic transaction verification
- Better subscription management
- Improved error handling
- No receipt validation needed for StoreKit 2
- iOS: Automatic fallback to StoreKit 1 for iOS 11.0-14.x
- Android: Support for all Billing Client v8 features
- Architecture: New mixin-based architecture for better code organization
- Platform-specific code separated into
modules/ios.dartandmodules/android.dart - Improved testability and maintainability
- Platform-specific code separated into
Migration Guide #
- Update all
ErrorCodereferences:// Before ErrorCode.E_USER_CANCELLED // After ErrorCode.eUserCancelled - Update channel access in tests:
// Before FlutterInappPurchase.channel // After FlutterInappPurchase.instance.channel - StoreKit 2 will be used automatically on supported devices
- StoreKit Configuration files (.storekit) work with StoreKit 2 on iOS 15+
5.6.2 #
- fix: removed references to deprecated v1 Android embedding by @moodstubos in https://github.com/hyochan/flutter_inapp_purchase/pull/497
5.6.1 #
- Erroneous duplicate item by @deakjahn in https://github.com/hyochan/flutter_inapp_purchase/pull/441
- Fixed consumable products reading on Android by @33-Elephants in https://github.com/hyochan/flutter_inapp_purchase/pull/439
- fix: Support AGP8 namespace by @dev-yakuza in https://github.com/hyochan/flutter_inapp_purchase/pull/467
5.6.0 #
- refactor: android init connection
Used Kotlin apply for cleaner initialization of billingClient. Introduced context ?: return for null-safety with context. Merged repetitive code into the updateConnectionStatus method to avoid duplication. Improved the handling of the alreadyFinished flag to ensure it is only set once and at the appropriate time. Streamlined the error and success handling for clarity. - Migrate android billingClient to 6.0.1
5.5.0 #
- Erroneous duplicate item (#441) - Remove extra
introductoryPricePaymentModeIOS - Fixed consumable products reading on Android (#439)
- chore(deps): migrate internal packages to recent
http: ^1.1.0 meta: ^1.10.0 platform: ^3.1.3 - chore: migrate example project to recent flutter version, 3.16.0-0.3.pre
5.4.2 #
What's Changed #
- Update actions/stale action to v8 by @renovate in https://github.com/hyochan/flutter_inapp_purchase/pull/414
- Fix - wrong casting by @BrunoFSimon in https://github.com/hyochan/flutter_inapp_purchase/pull/427
- Fixed consumable product purchase on Android by @33-Elephants in https://github.com/hyochan/flutter_inapp_purchase/pull/420
New Contributors #
- @BrunoFSimon made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/427
- @33-Elephants made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/420
Full Changelog: https://github.com/hyochan/flutter_inapp_purchase/compare/5.4.1...5.4.2
5.4.1 #
- Fixed concurrency issue on iOS. by @OctavianLfrd in https://github.com/hyochan/flutter_inapp_purchase/pull/413
5.4.0 #
- Fixed wrong casting in checkSubscribed method by @kleeb in https://github.com/hyochan/flutter_inapp_purchase/pull/368
- Upgrade to billing 5.1 (reverse compatible) by @SamBergeron in https://github.com/hyochan/flutter_inapp_purchase/pull/392
5.3.0 #
What's Changed #
- Refactor java to kotlin, add showInAppMessageAndroid by @offline-first in https://github.com/hyochan/flutter_inapp_purchase/pull/365
New Contributors #
- @offline-first made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/365
Full Changelog: https://github.com/hyochan/flutter_inapp_purchase/compare/5.2.0...5.3.0
5.2.0 #
Bugfix #356
5.1.1 #
Run on UiThread and few others (#328)
-
Related #272
-
The main difference is a new MethodResultWrapper class that wraps both the result and the channel. onMethodCall() now immediately saves this wrapped result-channel to a field and only uses that later to set both the result and to send back info on the channel. I did this in both Google and Amazon but I can't test the Amazon one.
-
Included the plugin registration differences.
-
Midified suggested in one of the issues that initConnection, endConnection and consumeAllItems shouldn't be accessors. This is very much so, property accessors are not supposed to do work and have side effects, just return a value. Now three new functions are suggested and marked the old ones deprecated.
Fourth, EnumUtil.getValueString() is not really necessary, we have describeEnum() in the Flutter engine just for this purpose.
5.1.0 #
Upgrade android billing client to 4.0.0 (#326)
Remove orderId in Purchase
- This is duplicate of
transactionId.
Support for Amazon devices with Google Play sideloaded (#313)
5.0.4 #
- Add iOS promo codes (#325)
- Use http client in validateReceiptIos (#322)
- Amazon
getPricedirectly withoiut formatting (#316)
5.0.2 #
- Replaced obfuscatedAccountIdAndroid with obfuscatedAccountId in request purchase method #299
4.0.1 #
platformdep version>=2.0.0 <4.0.0
3.0.0 #
- Upgrade android billing client to
2.1.0from3.0.0. - Removed
deveoperIdandaccountIdwhen requestingpurchaseorsubscriptioninandroid. - Added
obfuscatedAccountIdAndroidandobfuscatedProfileIdAndroidwhen requestingpurchaseorsubscriptioninandroid. - Removed
developerPayloadinandroid. - Added
purchaseTokenAndroidas an optional parameter torequestPurchaseandrequestSubscription.
2.3.1 #
Republishing since sourcode seems not merged correctly.
2.3.0 #
2.2.0 #
- Implement
endConnectionmethod to declaratively finish observer in iOS. - Remove
addTransactionObserverin IAPPromotionObserver.m for dup observer problems. - Automatically startPromotionObserver in
initConnectionfor iOS.
2.1.1 #
- Renamed
finishTransactionIOSargumentpurchaseTokentotransactionId.
2.1.0 #
finishTransactionparameter changes topurchasedItemfrompurchaseToken.- Update android billing client to
2.1.0from2.0.3.
2.0.3 #
2.0.0+16 #
- Resolve #106 by not sending
result.errorto the listener. Created use_conectionSubscription.
2.0.0+14 #
- Pass android exception to flutter side.
2.0.0+13 #
- Android receipt validation api upgrade to
v3.
2.0.0+6 #
- Send
purchase-errorwith purchases returns null.
2.0.0+5 #
- Renamed invoked parameters non-platform specific.
2.0.0+4 #
- Add
deveoperIdandaccountIdwhen requestingpurchaseorsubscriptioninandroid. Find out more inrequestPurchaseandrequestSubscription.
2.0.0+2 #
- Seperate long
examplecode toexamplereadme.
2.0.0+1 #
- Properly set return type
PurchaseResultof when finishing transaction.
2.0.0 🎉 #
- Removed deprecated note in the
readme. - Make the previous tests work in
travis. - Documentation on
readmefor breaking features. - Abstracts
finishTransaction.acknowledgePurchaseAndroid,consumePurchaseAndroid,finishTransactionIOS.
[Android]
- Completely remove prepare.
- Upgrade billingclient to 2.0.3 which is currently recent in Sep 15 2019.
- Remove [IInAppBillingService] binding since billingClient has its own functionalities.
- Add [DoobooUtils] and add
getBillingResponseDatathat visualizes erorr codes better. buyProductno more return asyn result. It rather relies on thepurchaseUpdatedListener.- Add feature method
acknowledgePurchaseAndroid- Implement
acknowledgePurchaseAndroid. - Renamed
consumePurchasetoconsumePurchaseAndroidin dart side. - Update test codes.
- Implement
- Renamed methods
buyProducttorequestPurchase.buySubscriptiontorequestSubscription.
[iOS]
- Implment features in new releases.
- enforce to
finishTransactionafter purchases. - Work with
purchaseUpdatedandpurchaseErrorlistener as in android. - Feature set from
react-native-iap v3. - Should call finish transaction in every purchase request.
- Add
IAPPromotionObservercocoa touch file - Convert dic to json string before invoking purchase-updated
- Add
getPromotedProductIOSandrequestPromotedProductIOSmethods - Implement clearTransaction for ios
- Include
purchasePromotedstream that listens toiap-promoted-product.
- enforce to
1.0.0 #
- Add
DEPRECATIONnote. Please use in_app_purchase.
0.9.+ #
- Breaking change. Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate to Android X if they're using the original support library. Android's Migrating to Android X Guide.
- Improved getPurchaseHistory's speed 44% faster #68.
0.8.+ #
- Fixed receipt validation param for
android. - Updated
httppackage. - Implemented new method
getAppStoreInitiatedProducts.- Handling of iOS method
paymentQueue:shouldAddStorePayment:forProduct: - Has no effect on Android.
- Handling of iOS method
- Fixed issue with method
buyProductWithoutFinishTransactionfor iOS, was not getting the productId. - Fixed issue with
toStringmethod of classIAPItem, was printing incorrect values. - Fixes for #44. Unsafe getting
originalJsonwhen restoring item andAndroid. - Use dictionaryWithObjectsAndKeys in NSDictionary to fetch product values. This will prevent from NSInvalidArgumentException in ios which rarely occurs.
- Fixed wrong npe in
androidwhengetAvailablePurchases.
- Only parse
orderIdwhen exists inAndroidto prevent crashing. - Add additional success purchase listener in
iOS. Related #54
0.7.1 #
- Implemented receiptValidation for both android and ios.
- In Android, you need own backend to get your
accessToken.
- In Android, you need own backend to get your
0.7.0 #
- Addition of Amazon In-App Purchases.
0.6.9 #
- Prevent nil element exception when getting products.
0.6.8 #
- Prevent nil exception in ios when fetching products.
0.6.7 #
- Fix broken images on pub.
0.6.6 #
- Added missing introductory fields in ios.
0.6.5 #
- convert dynamic objects to PurchasedItems.
- Fix return type for getAvailablePurchases().
- Fix ios null value if optional operator.
0.6.3 #
- Update readme.
0.6.2 #
- Fixed failing when there is no introductory price in ios.
0.6.1 #
- Fixed
checkSubscribedthat can interrupt billing lifecycle.
0.6.0 #
- Major code refactoring by lukepighetti. Unify PlatformException, cleanup new, DateTime instead of string.
0.5.9 #
- Fix getSubscription json encoding problem in
ios.
0.5.8 #
- Avoid crashing on android caused by IllegalStateException.
0.5.7 #
- Avoid possible memory leak in android by deleting static declaration of activity and context.
0.5.6 #
- Few types fixed.
0.5.4 #
- Fixed error parsing IAPItem.
0.5.3 #
- Fixed error parsing purchaseHistory.
0.5.2 #
- Fix crashing on error.
0.5.1 #
- Give better error message on ios.
0.5.0 #
- Code migration.
- Support subscription period.
- There was parameter renaming in
0.5.0to identify different parameters sent from the device. Please check the readme.
0.4.3 #
- Fixed subscription return types.
0.4.0 #
- Well formatted code.
0.3.3 #
- Code formatted
- Updated missing data types
0.3.1 #
- Upgraded readme for ease of usage.
- Enabled strong mode.
0.3.0 #
- Moved dynamic return type away and instead give
PurchasedItem.
0.2.2 #
- Migrated packages from FlutterInApp to FlutterInAppPurchase because pub won't get it.
0.1.0 #
- Initial release of beta
- Moved code from react-native-iap