Skip to content

Commit 5604c0a

Browse files
authored
Merge pull request #427 from qonversion/release/11.1.1
2 parents 398ef80 + ec9147d commit 5604c0a

File tree

7 files changed

+43
-16
lines changed

7 files changed

+43
-16
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 11.1.1
2+
* Fixed bug when No-Codes screen on iOS was closing after the user canceled the purchase flow
3+
* Small MacOS support fixes
4+
15
## 11.1.0
26
* No-Codes can now be used with your [custom purchase system](https://documentation.qonversion.io/docs/using-no-codes-with-custom-purchases-handling), even if you use Qonversion in Analytics mode,
37
* You can now provide a custom locale to No-Codes to override the system one,

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,6 @@ android {
5151

5252
dependencies {
5353
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
54-
implementation "io.qonversion:sandwich:7.3.0"
54+
implementation "io.qonversion:sandwich:7.3.1"
5555
implementation 'com.google.code.gson:gson:2.9.0'
5656
}

ios/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
s.source_files = 'Classes/**/*'
1717
s.dependency 'Flutter'
1818
s.platform = :ios, '13.0'
19-
s.dependency "QonversionSandwich", "7.3.0"
19+
s.dependency "QonversionSandwich", "7.3.1"
2020

2121
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
2222
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }

lib/src/internal/qonversion_internal.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import 'package:qonversion_flutter/src/internal/utils/string.dart';
1111
import 'constants.dart';
1212

1313
class QonversionInternal implements Qonversion {
14-
static const String sdkVersion = "11.1.0";
14+
static const String sdkVersion = "11.1.1";
1515

1616
final MethodChannel _channel = MethodChannel('qonversion_plugin');
1717

macos/Classes/SwiftQonversionPlugin.swift

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
3030
instance.qonversionSandwich = sandwichInstance
3131
}
3232

33-
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
33+
@MainActor public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
3434

3535
// MARK: - Calls without arguments
3636

3737
switch (call.method) {
3838
case "syncHistoricalData":
39-
qonversionSandwich?.syncHistoricalData()
40-
return result(nil)
39+
qonversionSandwich?.syncHistoricalData()
40+
return result(nil)
4141

4242
case "syncStoreKit2Purchases":
43-
qonversionSandwich?.syncStoreKit2Purchases()
44-
return result(nil)
43+
qonversionSandwich?.syncStoreKit2Purchases()
44+
return result(nil)
4545

4646
case "products":
4747
return products(result)
@@ -62,19 +62,22 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
6262
case "logout":
6363
qonversionSandwich?.logout()
6464
return result(nil)
65-
66-
case "isFallbackFileAccessible":
67-
return isFallbackFileAccessible(result)
6865

6966
case "userInfo":
7067
return userInfo(result)
7168

7269
case "userProperties":
7370
return userProperties(result)
7471

72+
case "isFallbackFileAccessible":
73+
return isFallbackFileAccessible(result)
74+
7575
case "remoteConfigList":
7676
return remoteConfigList(result)
7777

78+
case "collectAppleSearchAdsAttribution":
79+
return collectAppleSearchAdsAttribution(result)
80+
7881
default:
7982
break
8083
}
@@ -95,6 +98,9 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
9598
case "purchase":
9699
return purchase(args, result)
97100

101+
case "purchaseWithResult":
102+
return purchaseWithResult(args, result)
103+
98104
case "remoteConfig":
99105
return remoteConfig(args["contextKey"] as? String, result)
100106

@@ -118,10 +124,10 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
118124

119125
case "identify":
120126
return identify(args["userId"] as? String, result)
121-
127+
122128
case "attachUserToExperiment":
123129
return attachUserToExperiment(args, result)
124-
130+
125131
case "detachUserFromExperiment":
126132
return detachUserFromExperiment(args, result)
127133

@@ -171,7 +177,7 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
171177
return result(FlutterError.noNecessaryData)
172178
}
173179

174-
qonversionSandwich?.getPromotionalOffer(productId, productDiscountId:discountId, completion:getDefaultCompletion(result))
180+
qonversionSandwich?.getPromotionalOffer(productId, productDiscountId:discountId, completion:getJsonCompletion(result))
175181
}
176182

177183
private func products(_ result: @escaping FlutterResult) {
@@ -190,6 +196,18 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
190196
qonversionSandwich?.purchase(productId, quantity:quantity, contextKeys:contextKeys, promoOffer:promoOfferData, completion:getJsonCompletion(result))
191197
}
192198

199+
private func purchaseWithResult(_ args: [String: Any], _ result: @escaping FlutterResult) {
200+
guard let productId = args["productId"] as? String else {
201+
return result(FlutterError.noNecessaryData)
202+
}
203+
204+
let contextKeys = args["contextKeys"] as? [String] ?? []
205+
let quantity = args["quantity"] as? Int ?? 1
206+
let promoOfferData = args["promoOffer"] as? [String: Any] ?? [:]
207+
208+
qonversionSandwich?.purchaseWithResult(productId, quantity:quantity, contextKeys:contextKeys, promoOffer:promoOfferData, completion:getJsonCompletion(result))
209+
}
210+
193211
private func checkEntitlements(_ result: @escaping FlutterResult) {
194212
qonversionSandwich?.checkEntitlements(getJsonCompletion(result))
195213
}
@@ -206,6 +224,11 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
206224
qonversionSandwich?.isFallbackFileAccessible(completion: getJsonCompletion(result))
207225
}
208226

227+
private func collectAppleSearchAdsAttribution(_ result: @escaping FlutterResult) {
228+
qonversionSandwich?.collectAppleSearchAdsAttribution()
229+
result(nil)
230+
}
231+
209232
private func remoteConfigList(_ args: [String: Any], _ result: @escaping FlutterResult) {
210233
guard let contextKeys = args["contextKeys"] as? [String] else {
211234
return result(FlutterError.noNecessaryData)

macos/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
s.source_files = 'Classes/**/*'
1717
s.dependency 'FlutterMacOS'
1818
s.platform = :osx, '10.12'
19-
s.dependency "QonversionSandwich", "6.0.10"
19+
s.dependency "QonversionSandwich", "7.3.1"
2020

2121
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
2222
s.swift_version = '5.0'

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: 11.1.0
3+
version: 11.1.1
44
homepage: 'https://qonversion.io'
55
repository: 'https://github.com/qonversion/flutter-sdk'
66

0 commit comments

Comments
 (0)