Repository navigation
Bump Android SDK to 2.9.0 - #19
Merged
Merged
Conversation
Contributor
Author
|
The integration agent failed (run). This PR only contains the version bump — check the release notes above for public API changes by hand before merging. |
superwall-android 2.9.0 calls PurchaseController.purchase(activity, product, basePlanId, offerId, replacement) for every purchase. The bridge only overrode the old ProductDetails overload, so the SDK's default dropped the replacement and a Unity purchase controller bought a second subscription instead of upgrading or switching the existing one. The bridge now overrides the 2.9.0 overload and sends the replacement (mode, old product id, old purchase token) with purchaseFromGooglePlay. C# gets a ProductReplacement model and an IPurchaseController.PurchaseFromGooglePlay overload that takes it. The overload has a default implementation that calls the existing four-argument method, the same pattern superwall-android uses, so existing controllers compile and behave as before.
# Conflicts: # CHANGELOG.md
…ase 0.4.1 The iOS harness now builds against exactly SuperwallKit 4.19.1, matching the Podfile's >= 4.19.1 requirement. superwall-android 2.10.0 deprecates LogScope.storeKitManager in favour of LogScope.billing, so the bridge maps to the new scope.
SuperwallKit 4.18 raised its deployment target to iOS 15, so a game targeting a lower version failed pod install. The Podfile now uses at least iOS 15 and the build warns. EventType gains the teleport and customer center events the native SDKs now send.
…ative-sdk/android-2.10.0 # Conflicts: # CHANGELOG.md # Plugins/Android/SuperwallSDK.androidlib/build.gradle
Bump Android SDK to 2.10.0, iOS SDK to 4.19.1, release 0.4.1
Pinning Superwall-iOS exactly to 4.19.1 made SPM fail on the macos-15 image (Xcode 16.4): 4.18+ declares Swift tools 6.2. With the old from: requirement it had silently resolved 4.17.x.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the Android SDK from
2.8.7to2.9.0. The package version is unchanged; the note is under[Unreleased].Opened automatically by
native-sdk-bump.ymlafter superwall/Superwall-Android 2.9.0 was released. An agent then checks the release notes below for public API changes and pushes any integration work onto this PR.Android release notes (2.8.7 → 2.9.0)
2.9.0
Enhancements
attribution_matchevent. The resultingacquisition_*attributes are added to user attributes, so they can be used as breakdowns and filters in charts and audiences, and they carry over to new users afteridentifyorreset. The match runs once per install, within 7 days of install, only when the dashboard has turned it on for the app, and never blocks startup. It uses the Play install referrer's click id when present. It is skipped whileeventTrackingBehaviorisNONEand runs if tracking is turned back on. On the first launch, a paywall whose audiences useacquisition_*attributes waits up to 2 seconds for a match that's still running.SuperwallOptions.adConsentandSuperwall.instance.adConsentfor reporting the user's ad measurement consent (AdConsent.Custom(adUserData, adPersonalization), each anAdConsentStatusofGrantedorDenied). It is sent as theadUserDataConsentandadPersonalizationConsentdevice attributes and forwarded with the conversions Superwall uploads to Google Ads and Meta. WhileadConsentisAdConsent.Unspecified, the default, the SDK uses the consent stored by an IAB TCF consent banner when GDPR applies, and otherwise defaults to granted; apps with users in the EEA, UK or Switzerland that don't use a TCF banner should set it from their consent flow. Where the values came from is reported in the newadConsentSourcedevice attribute (developer,tcfordefault). Both are reported as denied wheneventTrackingBehaviorisNONE.SubscriptionUpdateParams. Users without such a subscription make a normal purchase.PurchaseController.purchase(activity, product, basePlanId, offerId, replacement). ItsProductReplacementcarries the mode and the old product's ID and purchase token, so a customPurchaseControllercan perform the replacement. The default implementation ignores it and calls the existingpurchasemethod.Fixes
PresentationHost.IN_WINDOW. The in-window host padded the paywall for the cutout as well as the system bars; it now pads for the system bars only, asSuperwallPaywallActivitydoes, and the paywall clears the cutout with its CSS safe-area insets.transaction_completewas only sent to the paywall for subscriptions.getProducts()(and other network-backed suspend APIs) not being main-safe: network requests now always run onDispatchers.IO, so the/productsfallback no longer fails withNetworkOnMainThreadExceptionwhen called from the main thread.2.8.8
Enhancements
AIRBRIDGE_IDas anAttributionProvider(airbridgeId), for the Airbridge Device ID fromAirbridge.fetchDeviceUUID.