Releases: stashgg/stash-native
Stash Native 2.2.1
What's changed
Added
- iOS/Android: optional
autoCloseflag on card/modal configs (defaulttrue). Whenfalse, 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
What's changed
Changed
- Android: Chrome Custom Tabs now launch via an internal invisible proxy activity (
StashNativeBrowserProxyActivity) that owns thestartActivityForResultlifecycle.onBrowserClosed()fires reliably with no host-activity changes — Unity (UnityPlayerActivity) and partner apps that cannot shiponActivityResultforwarders 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 theStashNativeCard.REQUEST_CODE_CUSTOM_TABconstant. Hosts that previously forwardedonActivityResultshould 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
What's changed
Added
- Android:
StashNativeCardListener.onBrowserClosed()after external browser handoff (openBrowser, external payment).StashNativeCardListenerAdapterprovides an empty default. - Android: Chrome Custom Tabs use
startActivityForResultwithStashNativeCard.REQUEST_CODE_CUSTOM_TAB; hosts must forwardStashNativeCard.onActivityResultfrom the launching activity.ACTION_VIEWfallback still uses lifecycle-basedonBrowserClosed. - iOS: optional
stashNativeCardDidCloseBrowseronStashNativeCardDelegatewhenSFSafariViewControlleris dismissed (user Done orcloseBrowser), includingopenBrowserWithURL: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
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-androidandtest-iosin lint workflow. CLAUDE.mdproject rules for AI-assisted development.CHANGELOG.md.
Fixed
- iOS:
openModalWithURL:config:nilnow uses the same defaults asStashNativeModalConfig.init(was 0.9/0.7, now 0.80/0.50). - iOS:
StashNativeCard.hModalConfig doc comments now match actual implementation defaults. - Android:
openModal()now clamps ModalConfig ratio values to [0.1, 1.0] (matchingopenCard()behavior). - Android: Unified
COLOR_DARK_BGto single canonical value inCardConstants(was#1e1e1evs#1C1C1Ein two files).
Changed
- Android: ProGuard
consumer-rules.protightened from blanket keep to targeted public API rules. - Android: Broadcast receiver registration uses
ContextCompat.registerReceiver()withRECEIVER_NOT_EXPORTEDon all API levels. - Android: Removed 14 dead
HONEYCOMB/LOLLIPOPAPI level checks (minSdk is 21). - iOS: SPM umbrella header uses
__has_includefor framework vs flat header compatibility. - iOS:
Package.swiftincludes 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
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
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
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
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
⚠️ 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.