Skip to content

4.6.0

Latest

Choose a tag to compare

@tomredlev-as tomredlev-as released this 02 Sep 15:12

Changelog

[4.6.0] - 2026-09-02

Added

  • Custom event parameters are encrypted on the device before being sent, so personal data such as an
    email or phone number leaves the app already protected. Parameter names that need to stay readable
    — for example currency, revenue and campaign fields — are excluded, and that list is
    controlled server-side, so no code change is required in your app. Requires iOS 17 or later; on
    iOS 15 and 16 the values are encrypted server-side as before. Purchase transaction_details and
    deeplink user data are unaffected, so revenue reporting is unchanged. A value that cannot be
    encrypted is omitted from the event, and the rest of the event still sends.

Fixed

  • A null in the attribution match response no longer discards the whole response. Previously one
    null query parameter could cost an install its attribution data.
  • Event parameters holding null no longer cause the event to be silently dropped. Null values are
    now omitted from the payload (nulls inside arrays are kept), matching the Android SDK. This
    covered a nil Swift Optional passed as a parameter, any dictionary decoded from JSON that
    carries a null field, Dart null from Flutter, and nested nulls from React Native.
  • sendEvent(event:name:parameters:) no longer crashes the app when a parameter holds a value JSON
    cannot represent — a Date, URL, Data, Set, custom object, or a NaN/infinite number.
    Such keys are now dropped individually and named in an error log; the event still sends with its
    remaining parameters. Send strings, finite numbers, booleans, arrays, and nested string-keyed
    dictionaries.

Installation

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/appstack-tech/ios-appstack-sdk.git", from: "4.6.0")
]

XCFramework

Download AppstackSDK.xcframework.zip from the assets below and add it to your project.