Release 6.5.0
· 2 min read
We've shipped 6.5.0 with improved iOS parity to OpenIAP, safer parsing, and stronger pre-commit checks. The later 6.5.2/6.5.3 fixes are folded in here so you can see the full picture of the 6.5.x line.
Highlights
- iOS: channel method rename
buyProduct→requestPurchase(Dart updated accordingly) - Standardized error codes/messages via OpenIAP (
OpenIapError.defaultMessage) - Better restore flow: iOS runs
syncIOS()thengetAvailablePurchases() - iOS helpers:
clearTransactionIOS,getPromotedProductIOS,requestPurchaseOnPromotedProductIOS - Pre-commit hook now formats, analyzes, and runs tests by default
Improvements rolled up from 6.5.2 / 6.5.3
- iOS price parsing now tolerates numeric values (fixes “double is not a
subtype of String” crashes) and pins the OpenIAP Apple pod to
1.1.9for repeatable installs. fetchProducts()always setsproduct.id(with fallbacks toproductId/sku), and acceptstype: 'all'so Android merges in-app + subs results.- Products now centre on
id;productIdis kept for compatibility but is officially deprecated and scheduled for removal in 6.6.0. - Deprecated Dart APIs:
fetchProducts(),purchaseAsync(),requestPurchaseAuto(),finalize(),deepLinkToSubscriptionsAndroid(), andgetPurchaseHistories()—switch to the modern APIs ahead of 6.6.0. (UsefetchProducts()andrequestPurchase()as the replacements.) - Examples suppress the alert dialog when users cancel an iOS purchase flow.
Podspec now requires openiap ~> 1.1.8 (and 1.1.9 for Apple via CocoaPods).
Run cd example/ios && pod install after upgrading to refresh the lockfile.
See CHANGELOG for details. Thanks for all the feedback and reviews!
