Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ All notable changes to this package will be documented in this file.
* `SuperwallEventInfo.EventType` was never populated: iOS serialized `String(describing: event)`, which on SuperwallKit versions without a `CustomStringConvertible` conformance dumps the case together with its associated values (`transactionComplete(transaction: ..., product: ...)`), and Android sends the snake_case `rawName` (`transaction_complete`). Neither matched the `EventType` enum, so every delegate event arrived as the default `FirstSeen` and any `switch` on it was dead. iOS now emits only the case name, and the C# parser accepts both camelCase and snake_case, logging a warning instead of failing silently when a name is still unknown. `EventType` gains the members both native SDKs already emit but C# lacked (`PaywallPageView`, `TestModeModalOpen`/`Close`, `CelExpressionResult`, `ErrorThrown`, `ReviewGranted`/`Denied`, `AttributionMatch`, `StripeCheckoutStart`/`Submit`/`Complete`/`Fail`), and the two placement names whose member is spelled differently (`deepLink_open` → `DeepLink`, `paywallWebviewLoad_processTerminated` → `PaywallWebviewProcessTerminated`) are mapped explicitly.
* `SuperwallEventInfo.Product`, `.Transaction`, `.PaywallInfo`, `.Error` and `.RestoreType` were never populated on either platform: the bridges forwarded only `eventType` and the flattened `params`. The store transaction (and with it the store transaction id) was therefore unreachable from `handleSuperwallEvent`. Both bridges now serialize the associated values of the paywall and transaction events (`paywallOpen/Close/Decline`, `transactionStart/Abandon/Complete/Fail/Restore/Timeout`, `subscriptionStart`, `freeTrialStart`, `nonRecurringProductPurchase`), and the C# side reads them. Transaction dates are ISO 8601 strings, matching the existing `StoreTransaction` model.

### Dependencies
* Android: pins the native SDK to 2.8.7 (was `2.7.23`). [View Android SDK release notes](https://github.com/superwall/Superwall-Android/releases/tag/2.8.7).

## [0.2.6]

### Dependencies
Expand Down
4 changes: 2 additions & 2 deletions Plugins/Android/SuperwallSDK.androidlib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ if (agpMajor < 9) {

// Follow the host project's compile SDK (Unity writes unity.compileSdkVersion
// into the exported project's gradle.properties from Player Settings) so this
// module never pins consumers to a stale SDK. superwall-android 2.7.23 pulls
// module never pins consumers to a stale SDK. superwall-android 2.8.7 pulls
// androidx.activity 1.10.1, which requires compileSdk >= 35 — hence the fallback.
def unityCompileSdk = (findProperty('unity.compileSdkVersion') ?: '35') as int

Expand All @@ -43,7 +43,7 @@ android {
dependencies {
// Pinned exactly: a floating range (2.+) lets a Maven-side release break
// consumer builds overnight. Bump deliberately with each Unity SDK release.
api 'com.superwall.sdk:superwall-android:2.7.23'
api 'com.superwall.sdk:superwall-android:2.8.7'
api 'com.android.billingclient:billing:8.0.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0'
Expand Down