Skip to content

Commit 38f9102

Browse files
committed
6.0.0
1 parent 6a38465 commit 38f9102

File tree

3 files changed

+67
-109
lines changed

3 files changed

+67
-109
lines changed

.markdownlint.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
{
22
"MD013": false,
3-
"MD033": false
4-
}
3+
"MD024": false,
4+
"MD040": false,
5+
"MD041": false
6+
}

CHANGELOG.md

Lines changed: 62 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,173 +1,129 @@
1-
## 6.0.0-rc.1
1+
# CHANGELOG
22

3-
### Release Candidate
4-
5-
This is a release candidate for v6.0.0 with significant breaking changes. Please test thoroughly before using in production.
6-
7-
### Package Changes
8-
9-
- **Package**: Changed package name from `dev.hyochan.flutterinapppurchase` to `dev.hyo.flutterinapppurchase`
10-
- **Documentation**: Moved from `docs/` to `doc/` directory for pub.dev convention
11-
- **Version**: First release candidate for v6.0.0 major version
12-
13-
### Breaking Changes
14-
15-
- **iOS**: Now requires iOS 11.0+ (previously 8.0+)
16-
- **iOS**: StoreKit 2 is now used by default on iOS 15.0+ devices
17-
- **Android**: Updated to Billing Client v8.0.0 (from v6.0.1)
18-
- **API**: Complete refactoring of class structure and enum naming conventions
19-
- `ErrorCode` enum values changed from `E_UNKNOWN` to `eUnknown` (lowerCamelCase)
20-
- `PeriodUnitIOS` enum values changed from `DAY` to `day` (lowerCamelCase)
21-
- Platform-specific classes moved to mixins (`FlutterInappPurchaseIOS`, `FlutterInappPurchaseAndroid`)
22-
- Channel access changed from static to instance member
3+
## 6.0.0
234

24-
### New Features
5+
### Major Release - Open IAP Specification Compliance
256

26-
- **iOS**: Full StoreKit 2 support for iOS 15.0+
27-
- Automatic transaction verification
28-
- Better subscription management
29-
- Improved error handling
30-
- No receipt validation needed for StoreKit 2
31-
- **iOS**: Automatic fallback to StoreKit 1 for iOS 11.0-14.x
32-
- **Android**: Support for all Billing Client v8 features
33-
- **Architecture**: New mixin-based architecture for better code organization
34-
- Platform-specific code separated into `modules/ios.dart` and `modules/android.dart`
35-
- Improved testability and maintainability
7+
This major release redesigns the API to fully comply with the [Open IAP](https://www.openiap.dev) specification, providing a standardized interface for in-app purchases across platforms.
368

37-
### Migration Guide
9+
### What is Open IAP?
3810

39-
- Update all `ErrorCode` references:
40-
```dart
41-
// Before
42-
ErrorCode.E_USER_CANCELLED
43-
// After
44-
ErrorCode.eUserCancelled
45-
```
46-
- Update channel access in tests:
47-
```dart
48-
// Before
49-
FlutterInappPurchase.channel
50-
// After
51-
FlutterInappPurchase.instance.channel
52-
```
53-
- StoreKit 2 will be used automatically on supported devices
54-
- StoreKit Configuration files (.storekit) work with StoreKit 2 on iOS 15+
11+
[Open IAP](https://www.openiap.dev) is an open standard for implementing in-app purchases consistently across different platforms and frameworks. By following this specification, flutter_inapp_purchase now offers:
5512

56-
## 6.0.0
13+
- Consistent API design patterns
14+
- Standardized error codes and handling
15+
- Unified purchase flow across iOS and Android
16+
- Better interoperability with other IAP libraries
5717

5818
### Breaking Changes
5919

60-
- **iOS**: Now requires iOS 11.0+ (previously 8.0+)
61-
- **iOS**: StoreKit 2 is now used by default on iOS 15.0+ devices
62-
- **Android**: Updated to Billing Client v8.0.0 (from v6.0.1)
63-
- **API**: Complete refactoring of class structure and enum naming conventions
64-
- `ErrorCode` enum values changed from `E_UNKNOWN` to `eUnknown` (lowerCamelCase)
65-
- `PeriodUnitIOS` enum values changed from `DAY` to `day` (lowerCamelCase)
66-
- Platform-specific classes moved to mixins (`FlutterInappPurchaseIOS`, `FlutterInappPurchaseAndroid`)
67-
- Channel access changed from static to instance member
20+
- **Architecture**: Complete redesign following Open IAP specification
21+
- Removed `useIap` hook and `IapProvider` - use `FlutterInappPurchase.instance` directly
22+
- Removed `flutter_hooks` dependency
23+
- Simplified API with direct instance access pattern
24+
- **iOS**: Now requires iOS 11.0+ with StoreKit 2 support (iOS 15.0+)
25+
- **Android**: Updated to Billing Client v8.0.0
26+
- **API Changes**:
27+
- Enum naming convention: `E_UNKNOWN``eUnknown` (lowerCamelCase)
28+
- Channel access: `FlutterInappPurchase.channel``FlutterInappPurchase.instance.channel`
29+
- Unified error handling with standardized error codes
6830

6931
### New Features
7032

71-
- **iOS**: Full StoreKit 2 support for iOS 15.0+
72-
- Automatic transaction verification
73-
- Better subscription management
74-
- Improved error handling
75-
- No receipt validation needed for StoreKit 2
76-
- **iOS**: Automatic fallback to StoreKit 1 for iOS 11.0-14.x
77-
- **Android**: Support for all Billing Client v8 features
78-
- **Architecture**: New mixin-based architecture for better code organization
79-
- Platform-specific code separated into `modules/ios.dart` and `modules/android.dart`
80-
- Improved testability and maintainability
33+
- **Open IAP Compliance**: Full implementation of the Open IAP specification
34+
- **Improved Error Handling**: Standardized error codes across platforms
35+
- **Event-based Architecture**: New listeners for purchase updates and errors
36+
- **StoreKit 2 Support**: Automatic transaction verification on iOS 15.0+
37+
- **Better Type Safety**: Enhanced TypeScript-like type definitions
8138

8239
### Migration Guide
8340

84-
- Update all `ErrorCode` references:
85-
```dart
86-
// Before
87-
ErrorCode.E_USER_CANCELLED
88-
// After
89-
ErrorCode.eUserCancelled
90-
```
91-
- Update channel access in tests:
92-
```dart
93-
// Before
94-
FlutterInappPurchase.channel
95-
// After
96-
FlutterInappPurchase.instance.channel
97-
```
98-
- StoreKit 2 will be used automatically on supported devices
99-
- StoreKit Configuration files (.storekit) work with StoreKit 2 on iOS 15+
41+
```dart
42+
// Before (5.x)
43+
final iap = useIap();
44+
await iap.initialize();
45+
46+
// After (6.0)
47+
final iap = FlutterInappPurchase.instance;
48+
await iap.initConnection();
49+
```
50+
51+
For complete migration details, see the [documentation](https://flutter-inapp-purchase.hyo.dev).
10052

10153
## 5.6.2
10254

103-
- fix: removed references to deprecated v1 Android embedding by @moodstubos in https://github.com/hyochan/flutter_inapp_purchase/pull/497
55+
- fix: removed references to deprecated v1 Android embedding by @moodstubos in <https://github.com/hyochan/flutter_inapp_purchase/pull/497>
10456

10557
## 5.6.1
10658

107-
- Erroneous duplicate item by @deakjahn in https://github.com/hyochan/flutter_inapp_purchase/pull/441
108-
- Fixed consumable products reading on Android by @33-Elephants in https://github.com/hyochan/flutter_inapp_purchase/pull/439
109-
- fix: Support AGP8 namespace by @dev-yakuza in https://github.com/hyochan/flutter_inapp_purchase/pull/467
59+
- Erroneous duplicate item by @deakjahn in <https://github.com/hyochan/flutter_inapp_purchase/pull/441>
60+
- Fixed consumable products reading on Android by @33-Elephants in <https://github.com/hyochan/flutter_inapp_purchase/pull/439>
61+
- fix: Support AGP8 namespace by @dev-yakuza in <https://github.com/hyochan/flutter_inapp_purchase/pull/467>
11062

11163
## 5.6.0
11264

11365
- refactor: android init connection
114-
```
66+
67+
```text
11568
Used Kotlin apply for cleaner initialization of billingClient.
11669
Introduced context ?: return for null-safety with context.
11770
Merged repetitive code into the updateConnectionStatus method to avoid duplication.
11871
Improved the handling of the alreadyFinished flag to ensure it is only set once and at the appropriate time.
11972
Streamlined the error and success handling for clarity.
12073
```
74+
12175
- Migrate android billingClient to 6.0.1
122-
- https://developer.android.com/google/play/billing/release-notes#6-0-1
76+
- <https://developer.android.com/google/play/billing/release-notes#6-0-1>
12377

12478
## 5.5.0
12579

12680
- Erroneous duplicate item (#441) - Remove extra `introductoryPricePaymentModeIOS`
12781
- Fixed consumable products reading on Android (#439)
12882
- chore(deps): migrate internal packages to recent
129-
```
83+
84+
```sh
13085
http: ^1.1.0
13186
meta: ^1.10.0
13287
platform: ^3.1.3
13388
```
89+
13490
- chore: migrate example project to recent flutter version, 3.16.0-0.3.pre
13591

13692
## 5.4.2
13793

13894
## What's Changed
13995

140-
- Update actions/stale action to v8 by @renovate in https://github.com/hyochan/flutter_inapp_purchase/pull/414
141-
- Fix - wrong casting by @BrunoFSimon in https://github.com/hyochan/flutter_inapp_purchase/pull/427
142-
- Fixed consumable product purchase on Android by @33-Elephants in https://github.com/hyochan/flutter_inapp_purchase/pull/420
96+
- Update actions/stale action to v8 by @renovate in <https://github.com/hyochan/flutter_inapp_purchase/pull/414>
97+
- Fix - wrong casting by @BrunoFSimon in <https://github.com/hyochan/flutter_inapp_purchase/pull/427>
98+
- Fixed consumable product purchase on Android by @33-Elephants in <https://github.com/hyochan/flutter_inapp_purchase/pull/420>
14399

144100
## New Contributors
145101

146-
- @BrunoFSimon made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/427
147-
- @33-Elephants made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/420
102+
- @BrunoFSimon made their first contribution in <https://github.com/hyochan/flutter_inapp_purchase/pull/427>
103+
- @33-Elephants made their first contribution in <https://github.com/hyochan/flutter_inapp_purchase/pull/420>
148104

149-
**Full Changelog**: https://github.com/hyochan/flutter_inapp_purchase/compare/5.4.1...5.4.2
105+
**Full Changelog**: <https://github.com/hyochan/flutter_inapp_purchase/compare/5.4.1...5.4.2>
150106

151107
## 5.4.1
152108

153-
- Fixed concurrency issue on iOS. by @OctavianLfrd in https://github.com/hyochan/flutter_inapp_purchase/pull/413
109+
- Fixed concurrency issue on iOS. by @OctavianLfrd in <https://github.com/hyochan/flutter_inapp_purchase/pull/413>
154110

155111
## 5.4.0
156112

157-
- Fixed wrong casting in checkSubscribed method by @kleeb in https://github.com/hyochan/flutter_inapp_purchase/pull/368
158-
- Upgrade to billing 5.1 (reverse compatible) by @SamBergeron in https://github.com/hyochan/flutter_inapp_purchase/pull/392
113+
- Fixed wrong casting in checkSubscribed method by @kleeb in <https://github.com/hyochan/flutter_inapp_purchase/pull/368>
114+
- Upgrade to billing 5.1 (reverse compatible) by @SamBergeron in <https://github.com/hyochan/flutter_inapp_purchase/pull/392>
159115

160116
## 5.3.0
161117

162118
## What's Changed
163119

164-
- Refactor java to kotlin, add showInAppMessageAndroid by @offline-first in https://github.com/hyochan/flutter_inapp_purchase/pull/365
120+
- Refactor java to kotlin, add showInAppMessageAndroid by @offline-first in <https://github.com/hyochan/flutter_inapp_purchase/pull/365>
165121

166122
## New Contributors
167123

168-
- @offline-first made their first contribution in https://github.com/hyochan/flutter_inapp_purchase/pull/365
124+
- @offline-first made their first contribution in <https://github.com/hyochan/flutter_inapp_purchase/pull/365>
169125

170-
**Full Changelog**: https://github.com/hyochan/flutter_inapp_purchase/compare/5.2.0...5.3.0
126+
**Full Changelog**: <https://github.com/hyochan/flutter_inapp_purchase/compare/5.2.0...5.3.0>
171127

172128
## 5.2.0
173129

@@ -402,7 +358,7 @@ Republishing since sourcode seems not merged correctly.
402358

403359
- 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](https://developer.android.com/jetpack/androidx/migrate).
404360

405-
* Improved getPurchaseHistory's speed 44% faster [#68](https://github.com/hyochan/flutter_inapp_purchase/pull/68).
361+
- Improved getPurchaseHistory's speed 44% faster [#68](https://github.com/hyochan/flutter_inapp_purchase/pull/68).
406362

407363
## 0.8.+
408364

@@ -417,8 +373,8 @@ Republishing since sourcode seems not merged correctly.
417373
- Use dictionaryWithObjectsAndKeys in NSDictionary to fetch product values. This will prevent from NSInvalidArgumentException in ios which rarely occurs.
418374
- Fixed wrong npe in `android` when `getAvailablePurchases`.
419375

420-
* Only parse `orderId` when exists in `Android` to prevent crashing.
421-
* Add additional success purchase listener in `iOS`. Related [#54](https://github.com/hyochan/flutter_inapp_purchase/issues/54)
376+
- Only parse `orderId` when exists in `Android` to prevent crashing.
377+
- Add additional success purchase listener in `iOS`. Related [#54](https://github.com/hyochan/flutter_inapp_purchase/issues/54)
422378

423379
## 0.7.1
424380

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: flutter_inapp_purchase
22
description: In App Purchase plugin for flutter. This project has been forked by
33
react-native-iap and we are willing to share same experience with that on
44
react-native.
5-
version: 6.0.0-rc.4
5+
version: 6.0.0
66
homepage: https://github.com/hyochan/flutter_inapp_purchase/blob/main/pubspec.yaml
77
environment:
88
sdk: ">=3.0.0 <4.0.0"

0 commit comments

Comments
 (0)