-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[in_app_purchase_storekit] Add storekit 2 support for canMakePayments and products #7473
[in_app_purchase_storekit] Add storekit 2 support for canMakePayments and products #7473
Conversation
@@ -41,6 +41,9 @@ public class InAppPurchasePlugin: NSObject, FlutterPlugin, InAppPurchaseAPI { | |||
registrar.addMethodCallDelegate(instance, channel: channel) | |||
registrar.addApplicationDelegate(instance) | |||
SetUpInAppPurchaseAPI(messenger, instance) | |||
if #available(iOS 15.0, *) { | |||
InAppPurchase2APISetup.setUp(binaryMessenger: messenger, api: instance) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
InAppPurchaseStoreKit2APISetup
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
let products = try await Product.products(for: identifiers) | ||
let productMessages = products.map { product in | ||
product.convertToPigeon() | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
products.map { $0.convertToPigeon() }
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
@available(iOS 15.0, macOS 12.0, *) | ||
extension Product { | ||
func convertToPigeon() -> SK2ProductMessage { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var pigeonMessage: SK2ProductMessage {
return ...
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
@available(iOS 15.0, macOS 12.0, *) | ||
extension Product.ProductType { | ||
func convertToPigeon() -> SK2ProductTypeMessage { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
...pp_purchase/in_app_purchase_storekit/example/ios/RunnerTests/InAppPurchase2PluginTests.swift
Outdated
Show resolved
Hide resolved
...pp_purchase/in_app_purchase_storekit/example/ios/RunnerTests/InAppPurchase2PluginTests.swift
Outdated
Show resolved
Hide resolved
@@ -17,6 +18,9 @@ const String kPurchaseErrorCode = 'purchase_error'; | |||
/// Indicates store front is Apple AppStore. | |||
const String kIAPSource = 'app_store'; | |||
|
|||
/// Experimental flag for StoreKit2. | |||
bool _useStoreKit2 = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move inside the class
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@@ -5,6 +5,7 @@ | |||
import 'package:in_app_purchase_platform_interface/in_app_purchase_platform_interface.dart'; | |||
|
|||
import '../../store_kit_wrappers.dart'; | |||
import '../store_kit_2_wrappers/sk2_product_wrapper.dart'; | |||
|
|||
/// The class represents the information of a product as registered in the Apple | |||
/// AppStore. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you update comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just a few comments
...in_app_purchase/in_app_purchase_storekit/darwin/Classes/StoreKit2/StoreKit2Translators.swift
Show resolved
Hide resolved
…Payments and products (flutter/packages#7473)
flutter/packages@2a0f254...c9c0004 2024-08-30 10687576+bparrishMines@users.noreply.github.com [pigeon] Kotlin implementation for ProxyApis (flutter/packages#6371) 2024-08-29 louisehsu@google.com [in_app_purchase_storekit] Add storekit 2 support for canMakePayments and products (flutter/packages#7473) 2024-08-29 mhvdijk@gmail.com [flutter_adaptive_scaffold] Add correct material spacing and panes (flutter/packages#7428) 2024-08-29 34871572+gmackall@users.noreply.github.com [many] Upgrade example apps to AGP 8.5.2 (if they were below 8.1.0) (flutter/packages#7521) 2024-08-29 tarrinneal@gmail.com [pigeon] allow gen of unused classes (flutter/packages#7529) 2024-08-29 magder@google.com Increase deprecation check minimum to iOS 14 and macOS 13 (flutter/packages#7431) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/packages@2a0f254...c9c0004 2024-08-30 10687576+bparrishMines@users.noreply.github.com [pigeon] Kotlin implementation for ProxyApis (flutter/packages#6371) 2024-08-29 louisehsu@google.com [in_app_purchase_storekit] Add storekit 2 support for canMakePayments and products (flutter/packages#7473) 2024-08-29 mhvdijk@gmail.com [flutter_adaptive_scaffold] Add correct material spacing and panes (flutter/packages#7428) 2024-08-29 34871572+gmackall@users.noreply.github.com [many] Upgrade example apps to AGP 8.5.2 (if they were below 8.1.0) (flutter/packages#7521) 2024-08-29 tarrinneal@gmail.com [pigeon] allow gen of unused classes (flutter/packages#7529) 2024-08-29 magder@google.com Increase deprecation check minimum to iOS 14 and macOS 13 (flutter/packages#7431) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/packages@2a0f254...c9c0004 2024-08-30 10687576+bparrishMines@users.noreply.github.com [pigeon] Kotlin implementation for ProxyApis (flutter/packages#6371) 2024-08-29 louisehsu@google.com [in_app_purchase_storekit] Add storekit 2 support for canMakePayments and products (flutter/packages#7473) 2024-08-29 mhvdijk@gmail.com [flutter_adaptive_scaffold] Add correct material spacing and panes (flutter/packages#7428) 2024-08-29 34871572+gmackall@users.noreply.github.com [many] Upgrade example apps to AGP 8.5.2 (if they were below 8.1.0) (flutter/packages#7521) 2024-08-29 tarrinneal@gmail.com [pigeon] allow gen of unused classes (flutter/packages#7529) 2024-08-29 magder@google.com Increase deprecation check minimum to iOS 14 and macOS 13 (flutter/packages#7431) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This PR contains support for StoreKit2's canMakePayments and products.
This also contains basic scaffolding for SK2 support, such as pigeon translators.
Part of flutter/flutter#116383
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes].CHANGELOG.md
to add a description of the change, [following repository CHANGELOG style], or this PR is [exempt from CHANGELOG changes].///
).