Android 5.0.0

Migration Guide A number of renames, removal of some deprecated functions, and a change to configuration. Amazon Store support is also included. Check out the full list of changes in [migrations/v5-MIGRATION.md] API changes: See our RevenueCat V5 API update doc for API updates. Amazon Store Support We have introduced support for using the Amazon Store. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production. However, we have found some inconsistencies in the way Amazon Store prices are reported. We are actively working on patching these inconsistencies. Please help us help you by reporting any issues you find. New RevenueCat Issue. You can enable Amazon Store support by configuring the SDK using the new configure function: Purchases.configure(AmazonConfiguration.Builder(this, "public_amazon_sdk_key").build()) For more information around configuration please take a look at the Amazon Store section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices. If you're updating from an alpha version with Amazon Store support, remove the in-app-purchasing-2.0.76.jar dependency from your app/build.gradle and from the libs folder. Manually adding the jar is no longer required 😄 dependencies { implementation files('libs/in-app-purchasing-2.0.76.jar') -> Remove this ⚠️ ⚠️ Important ⚠️ ⚠️ Observer mode for Amazon is not supported yet. Changelog Note: This release is based off of 5.0.0-rc3. These are the changes compared to 5.0.0-rc3: Removed deprecated addAttributionData functions and AttributionNetwork enumhttps://github.com/RevenueCat/purchases-android/pull/506 Added retries with exponential backoff when reconnecting to Google's billing servicehttps://github.com/RevenueCat/purchases-android/pull/489 Updated to BillingClient 4.1https://github.com/RevenueCat/purchases-android/pull/500 Prevent Amazon from swallowing exceptionshttps://github.com/RevenueCat/purchases-android/pull/499 Improvements on Amazon implementation preventing a lot of issues related to price and currency parsinghttps://github.com/RevenueCat/purchases-android/pull/503 Full Changelog To view new release, visit https://github.com/RevenueCat/purchases-android/releases/tag/5.0.0

Flutter 4.0.0-amazon.alpha.3

⚠️ ⚠️ ⚠️This version doesn't support Amazon Store in observer mode.⚠️ ⚠️ ⚠️Adds initial Amazon Store support. In order to use please point to this tag in your pubspec.yaml like this:dependencies: purchases_flutter: git: url: https://github.com/RevenueCat/purchases-flutter.git ref: amazon.alpha.3Then configure the package using your RevenueCat API key specific for Amazon and passing useAmazon: true:await Purchases.setup(apiKey, appUserId: null, observerMode: false, useAmazon: true);Modify your android/app/build.gradle to add a dependency to the official in-app-purchasing-2.0.76.jardependencies { implementation files('libs/in-app-purchasing-2.0.76.jar')The next step would be to add the jar to your project. For that you can use the following gradle task that can be added to android/app/build.gradle and run via ./gradlew getAmazonLibrary or via Android Studio :// Gradle task to download Amazon libraryext { iapVersion = "2.0.76"}task getAmazonLibrary { ext { downloadURL = "https://amzndevresources.com/iap/sdk/AmazonInAppPurchasing_Android.zip" fileToExtract = "in-app-purchasing-${iapVersion}.jar" destFile = new File( projectDir, "libs/$fileToExtract" ) } inputs.property( 'downloadURL', downloadURL ) inputs.property( 'fileToExtract', fileToExtract ) outputs.file( destFile ) doLast { File destDir = destFile.parentFile destDir.mkdirs() File downloadFile = new File( temporaryDir, 'download.zip' ) new URL( downloadURL ).withInputStream { is -> downloadFile.withOutputStream { it << is } } project.copy { from { zipTree(downloadFile).matching { include "**/$fileToExtract" }.singleFile } into( destDir ) } }}That gradle task will add the jar to the libs folder inside app:Alternatively, you can do this manually by downloading the .zip from Amazon and then unzipping and moving the in-app-purchasing-2.0.76.jar into your projects android/app/libs/ folder like in the screenshot above.Due to some limitations, RevenueCat will only validate purchases made in production or in Live App Testing and won't validate purchases made with the Amazon App Tester.To view new release, visit https://github.com/RevenueCat/purchases-flutter/releases/tag/4.0.0-amazon.alpha.3

iOS 4.0.0

RevenueCat iOS SDK v4 is here!! Full Changelog Migration Guide See our RevenueCat V4 API update doc for API updates.Note: This release is based off of 4.0.0-rc.4. Developers migrating from that version shouldn't see any changes. API changes: There have been a lot of changes since v3! Here are the highlights: Async / Await alternative APIs New async / await alternatives for all APIs that have completion blocks, as well as an AsyncStream for CustomerInfo. New types and cleaned up naming New types that wrap StoreKit's native types, and we cleaned up the naming of other types and methods for a more consistent experience. New APIs for Customer Support You can now use showManageSubscriptions() and beginRefundRequest() to help your users manage their subscriptions right from the app. Rewritten in Swift We rewrote the SDK in 100% Swift. This made the code more uniform and easy to maintain, and helps us better support StoreKit 2. StoreKit 2 Support [Beta] [Experimental] Introduced support for using StoreKit 2 under the hood for compatible devices. This is currently in beta phase, and disabled by default. When enabled, StoreKit 2 APIs will be used under the hood for purchases in compatible devices. You can enable this by configuring the SDK passing useStoreKit2IfAvailable: true. On devices that don't support StoreKit 2, StoreKit 1 will be used automatically instead. Full API changes list See our RevenueCat V4 API update doc for API updates. Documentation: We built a new Documentation site with Docc with cleaner and more detailed docs. The new documentation can be found here. To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.0.0

iOS 4.0.0-rc.4

Fourth RC for RevenueCat framework v4 🎉 100% Swift framework + ObjC support. Full Changelog See our RevenueCat V4 API update doc for API updates. RC 4 introduces the following updates: API changes: Breaking changes: Replaced checkPromotionalDiscountEligibility with getPromotionalOffer, which returns a PromotionalOffer. Renamed Purchases/purchase(package:discount:) and its variants to Purchases/purchase(package:promotionalOffer:). They now take a PromotionalOffer instead of a StoreProductDiscount. [Objective-C only]: Updated type of StoreProduct.price and StoreProductDiscount.price from NSDecimal to the much more useful NSDecimalNumber. Additions: Added StoreProduct.ProductType, and StoreProduct.ProductCategory, which provide extra information about whether a product is a consumable, non-consumable, auto-renewable or non-auto-renewable subscription. Added currencyCode to StoreProduct and StoreProductDiscount. Added localizedPriceString to StoreProductDiscount. Documentation: Documentation can be found in https://revenuecat-docs.netlify.app/documentation/Revenuecat. We've made several improvements to docstrings and added a few landing pages for the most important sections of the SDK. Other changes: There are lots of under the hood improvements. If you see any issues we'd appreciate bug reports! Changes from previous RC These changes add to all of the changes from beta RC 2, listed here. To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.0.0-rc.4