Skip to content

Releases: stashgg/stash-native

Stash Native 2.2.1

02 Jun 10:26

Choose a tag to compare

What's changed

Added

  • iOS/Android: optional autoClose flag on card/modal configs (default true). When false, the dialog stays open after the payment callback until closed by the page, user, or host.

Fixed

  • Android: card no longer shifts off-screen when the soft keyboard opens; it now resizes to keep the focused input visible above the keyboard.

StashNative SDK 2.2.1

Android

Download StashNative-2.2.1.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.2.1.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.2.1.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.2.0

26 May 14:28
0bfda5d

Choose a tag to compare

What's changed

Changed

  • Android: Chrome Custom Tabs now launch via an internal invisible proxy activity (StashNativeBrowserProxyActivity) that owns the startActivityForResult lifecycle. onBrowserClosed() fires reliably with no host-activity changes — Unity (UnityPlayerActivity) and partner apps that cannot ship onActivityResult forwarders now get the callback out of the box. Engagement-signal detection of floating/minimized-window dismiss is preserved.

Removed

  • Android (breaking): StashNativeCard.onActivityResult(int, int, Intent) and the StashNativeCard.REQUEST_CODE_CUSTOM_TAB constant. Hosts that previously forwarded onActivityResult should delete that forwarder; it is no longer needed and the symbols no longer exist.

StashNative SDK 2.2.0

Android

Download StashNative-2.2.0.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.2.0.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.2.0.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.1.4

11 May 22:30
1284760

Choose a tag to compare

What's changed

Added

  • Android: StashNativeCardListener.onBrowserClosed() after external browser handoff (openBrowser, external payment). StashNativeCardListenerAdapter provides an empty default.
  • Android: Chrome Custom Tabs use startActivityForResult with StashNativeCard.REQUEST_CODE_CUSTOM_TAB; hosts must forward StashNativeCard.onActivityResult from the launching activity. ACTION_VIEW fallback still uses lifecycle-based onBrowserClosed.
  • iOS: optional stashNativeCardDidCloseBrowser on StashNativeCardDelegate when SFSafariViewController is dismissed (user Done or closeBrowser), including openBrowserWithURL: and external payment paths.

StashNative SDK 2.1.4

Android

Download StashNative-2.1.4.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.1.4.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.1.4.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.1.3

14 Apr 19:43

Choose a tag to compare

What's changed

Added

  • SDK version API: StashNativeCard.getVersion() (Android), StashNativeCard.sdkVersion() (iOS).
  • Unit test foundation: 12 iOS XCTests, 17 Android JUnit tests covering URL normalization, theme parameters, config defaults, and color parsing.
  • CI test jobs: test-android and test-ios in lint workflow.
  • CLAUDE.md project rules for AI-assisted development.
  • CHANGELOG.md.

Fixed

  • iOS: openModalWithURL:config:nil now uses the same defaults as StashNativeModalConfig.init (was 0.9/0.7, now 0.80/0.50).
  • iOS: StashNativeCard.h ModalConfig doc comments now match actual implementation defaults.
  • Android: openModal() now clamps ModalConfig ratio values to [0.1, 1.0] (matching openCard() behavior).
  • Android: Unified COLOR_DARK_BG to single canonical value in CardConstants (was #1e1e1e vs #1C1C1E in two files).

Changed

  • Android: ProGuard consumer-rules.pro tightened from blanket keep to targeted public API rules.
  • Android: Broadcast receiver registration uses ContextCompat.registerReceiver() with RECEIVER_NOT_EXPORTED on all API levels.
  • Android: Removed 14 dead HONEYCOMB/LOLLIPOP API level checks (minSdk is 21).
  • iOS: SPM umbrella header uses __has_include for framework vs flat header compatibility.
  • iOS: Package.swift includes test target.
  • Sample apps: marked test fixture data, removed dead code, cleaned verbose comments.

StashNative SDK 2.1.3

Android

Download StashNative-2.1.3.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.1.3.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.1.3.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.1.2

09 Apr 16:25

Choose a tag to compare

StashNative SDK 2.1.2

Android

Download StashNative-2.1.2.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.1.2.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.1.2.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.1.1

02 Apr 21:45

Choose a tag to compare

What's changed

  • Android bug fixes

StashNative SDK 2.1.1

Android

Download StashNative-2.1.1.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.1.1.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.1.1.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.1.0

25 Mar 22:47

Choose a tag to compare

What's changed

  • Added support for Stash Pay v2 - close button and dynamic card resizing.
  • Added new "retry logic" - If the connection drops, the card will try to reload again. This is helpful on bad cellular connection.
  • Added "overlay" so this prevents any webview flashing during load. It seamlessly fade in from the native "loading spinner" to a fully loaded Stash Pay on both platforms.

Critical Bugfixes

  • WebContent process death: Implemented webViewWebContentProcessDidTerminate: so a killed WebKit process triggers a one-time fresh loadRequest: (or network error), instead of staying blank until the 15s timeout.
  • Process pool: Removed the custom _sharedCardProcessPool; card WebViews use the default WKProcessPool (system-managed networking).
  • White flash / reveal during load: During the loading→WebView crossfade, set webView.opaque = NO, then set it back to YES in the animation completion; removed the JS that faded/removed __stash_overlay.
  • Page-ready polling: Dropped the __stash_overlay / __stashDarkOverlay gate from pollUntilPageReady; readiness is based on readyState and body visibility only.
  • Dark mode injection: Kept html + DOMContentLoaded body background-color; removed the full-screen overlay div and related flags.

Android

Download StashNative-2.1.0.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.1.0.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.1.0.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 2.0.0

08 Feb 20:31

Choose a tag to compare

What's changed

Code quality improvements across the repo, a new API naming scheme for consistency, and stability improvements on both Android and iOS.


StashNative SDK 2.0.0

Android

Download StashNative-2.0.0.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashNative-2.0.0.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashNative-2.0.0.xcframework.zip, unzip, and add StashNative.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.

Stash Native 1.2.5

05 Feb 00:21
28c70fe

Choose a tag to compare

⚠️ Warning
This is a legacy version for older Stash integration. For new integration please use version 2 with new interface.


StashPay SDK 1.2.5

Android

Download StashPay-1.2.5.aar and add to your project's libs folder.

dependencies {
    implementation files('libs/StashPay-1.2.5.aar')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.browser:browser:1.7.0'
}

iOS

Download StashPay-1.2.5.xcframework.zip, unzip, and add StashPay.xcframework to your Xcode project.

Alternatively, use Swift Package Manager with this repository URL.