Skip to content

Commit 3c15eea

Browse files
authored
Release 4.3.3
Release 4.3.3
2 parents ff57433 + 1918242 commit 3c15eea

File tree

8 files changed

+40
-7
lines changed

8 files changed

+40
-7
lines changed

.github/workflows/checks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313

1414
- uses: actions/setup-java@v1
1515
name: Setup Java
16+
architecture: arm64
1617
with:
1718
java-version: '12.x'
1819

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 4.3.3
2+
* Added `purchaseProduct` function for Mac OS.
3+
14
## 4.3.2
25
* Fixed Android null-safety compilation issue in Flutter 3+.
36

ios/Classes/SwiftQonversionFlutterSdkPlugin.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,6 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
185185

186186
guard let product = jsonMap.toProduct() else {
187187
let errorMessage = "Failed to deserialize Qonversion Product. There is no qonversionId"
188-
NSLog(errorMessage)
189188
return result(FlutterError.noProductIdField(errorMessage))
190189
}
191190

@@ -199,7 +198,6 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
199198
}
200199
} catch let error as NSError {
201200
let errorMessage = "Failed to deserialize Qonversion Product: \(error.localizedDescription)"
202-
NSLog(errorMessage)
203201
result(FlutterError.jsonSerializationError(errorMessage))
204202
}
205203
}

ios/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
Pod::Spec.new do |s|
66
s.name = 'qonversion_flutter'
7-
s.version = '4.3.1'
7+
s.version = '4.3.3'
88
s.summary = 'Flutter Qonversion SDK'
99
s.description = <<-DESC
1010
Powerful yet simple subscription analytics

lib/src/qonversion.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import 'models/purchase_exception.dart';
1616
import 'qa_provider.dart';
1717

1818
class Qonversion {
19-
static const String _sdkVersion = "4.3.2";
19+
static const String _sdkVersion = "4.3.3";
2020

2121
static const MethodChannel _channel = MethodChannel('qonversion_flutter_sdk');
2222

macos/Classes/SwiftQonversionFlutterSdkPlugin.swift

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
7373

7474
case "purchase":
7575
return purchase(args["productId"] as? String, result)
76+
77+
case "purchaseProduct":
78+
return purchaseProduct(args["product"] as? String, result)
7679

7780
case "setUserId":
7881
return setUserId(args["userId"] as? String, result)
@@ -149,7 +152,35 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
149152
result(purchaseResult.toMap())
150153
}
151154
}
152-
155+
156+
private func purchaseProduct(_ jsonProduct: String?, _ result: @escaping FlutterResult) {
157+
guard let jsonProduct = jsonProduct else {
158+
return result(FlutterError.noProduct)
159+
}
160+
161+
do {
162+
let data = Data(jsonProduct.utf8)
163+
if let jsonMap = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
164+
165+
guard let product = jsonMap.toProduct() else {
166+
let errorMessage = "Failed to deserialize Qonversion Product. There is no qonversionId"
167+
return result(FlutterError.noProductIdField(errorMessage))
168+
}
169+
170+
Qonversion.purchaseProduct(product) { (permissions, error, isCancelled) in
171+
let nsError = error as NSError?
172+
let purchaseResult = PurchaseResult(permissions: permissions,
173+
error: nsError,
174+
isCancelled: isCancelled)
175+
result(purchaseResult.toMap())
176+
}
177+
}
178+
} catch let error as NSError {
179+
let errorMessage = "Failed to deserialize Qonversion Product: \(error.localizedDescription)"
180+
result(FlutterError.jsonSerializationError(errorMessage))
181+
}
182+
}
183+
153184
private func checkPermissions(_ result: @escaping FlutterResult) {
154185
Qonversion.checkPermissions { (permissions, error) in
155186
if let error = error {

macos/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
Pod::Spec.new do |s|
66
s.name = 'qonversion_flutter'
7-
s.version = '4.3.1'
7+
s.version = '4.3.3'
88
s.summary = 'Flutter Qonversion SDK'
99
s.description = <<-DESC
1010
Powerful yet simple subscription analytics

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: qonversion_flutter
22
description: Flutter plugin to implement in-app subscriptions and purchases. Validate user receipts and manage cross-platform access to paid content on your app. Android & iOS.
3-
version: 4.3.2
3+
version: 4.3.3
44
homepage: 'https://qonversion.io'
55
repository: 'https://github.com/qonversion/flutter-sdk'
66

0 commit comments

Comments
 (0)