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 examplecurrency,revenueand 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. Purchasetransaction_detailsand
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
nullin 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
nullno 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 SwiftOptionalpassed as a parameter, any dictionary decoded from JSON that
carries a null field, Dartnullfrom 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 — aDate,URL,Data,Set, custom object, or aNaN/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.