How to read this changelog: Understanding SDK changelog urgency and impact
Low
v4.36.1
Recommended if you use: Surveys on iPad- fix: Fix for survey layout issue when resizing the host app on iPad.
Low
v4.36.0
Recommended if you use: URL Prompt question type- chore: Updated the bundled Web SDK to v2.53.0, which carries survey enhacements into this release.
- add: [impact: behavior] Added the ability to launch an in-app web browser for URL Prompt question types.
- add: Added new lifecycle event displayInAppBrowser which fires when the in-app experience is triggered.
High
v4.35.0
Recommended if you use: survey lifecycle events- chore: Updated the bundled Web SDK to v2.51.0, which carries its survey and Session Replay fixes into this release.
- add: [impact: behavior] Refactor of the survey lifecycle events for better accuracy with the addition of the new surveyReturned event, the removal of surveyWillPresent, a change to when the surveyAppeared emits and the addition of the new surveyDidNotAppear event.
- add: Passing the surveyId of the previous survey when a previosSurveyAvailable state is returned.
Low
v4.34.0
Recommended if you use: Session Replay in SwiftUI apps on iOS 26 or later- add: Added SwiftUI support for text and image capture in session replays when running on iOS26 or above.
v4.31.0
- chore: Updated WebSDK to v2.45.0.
- fix: Fix for issue that was causing a white bar at the bottom of surveys when in dark mode.
- fix: Fix for survey height and animation issues.
v4.28.0
- chore: Updated WebSDK to v2.42.1.
- add: Returning new previousSurveyReady survey state.
- add: Logging enhancements.
v4.27.0
- chore: Updated WebSDK to v2.41.3.
- add: Updates to survey transition animations.
- add: Support for Display Logic.
v4.25.1
- add: Updated WebSDK to v2.37.1.
- chore: Changed the mimimum supported iOS version to 16.0.
- fix: Fixed issue where backgrounds for tab bars and alert views did not display in replays for iOS26
v4.25.0
- add: Updated WebSDK to v2.36.1.
- add: Support for new Rank Order question type.
- add: Response piping support.
- add: Removal of native modals coming from WKWebViews in Sprig replays.
- fix: Visual and stability improvements to the Sprig Replays experience.
- fix: Fix for surveys partially loading.
v4.24.7
- add: Updated WebSDK to v2.34.0.
- add: Added the ability to capture SwiftUI text and images as images for Session Replays.
- add: Added the SDK version to the debug logging output.
- fix: Removed surveyDimensions lifecycle event that was not being emitted.
- fix: Change to the way images are fed to the video writer for Session replays rendering.
v4.24.6
- fix: Fix for issue that prevented surveyClosed event from firing.
- fix: Fix for issue where SDK would crash if passed a non String, Int or Bool value in the properties of a track event call.
v4.24.5
- fix: Fix for issue that was causing irregular survey height for initial question.
- fix: Fix for issue where surveys would become partially dismissed if the keyboard was initially showing.
- add: Made the SDK version available to host applications.
- add: Added the ability for host applications to subscribe to a logging event for more detailed messages from the SDK.
v4.24.3
- fix: Fix for issue where dismiss on page change was executed when the current view controller could not be retrieved.
- fix: Fix for issue where two track events in rapid succession could cause a survey to dismiss.
- fix: Fix for issue where a session replay could be stopped if the user quickly answered a question and then closed the survey.
v4.24.2
- add: Uploading of partial session replay clips after capture has been stopped due to time on main thread exceeding the threshold.
v4.24.1
- add: Added new trackAndPresent and present public functions that allow client apps to present surveys without passing in a view controller.
- add: Added retrying to configure the SDK when there is not initially connectivity.
- add: Added respecting of content mode for images in session replays.
- fix: Added masking of images captured by the device camera in session replays.
- fix: Fixed issue that was preventing the passed block from being called when calling trackAndPresent.
v4.24.0
- add: Allow capturing of WKWebViews in session replays when unmasked.
- fix: Prevent potential retain cycle if track event is called but config is never called.
- fix: Fix for scenario where dismissing a second survey stops session replay capture triggered from an initial survey.
v4.23.10
- add: Support for the new session replay privacy controls (basic / moderate / strict / mask classes / unmask classes).
- fix: Fix race condition which prevents surveys from displaying when calling presentSurvey after a delay
v4.23.9
- fix: Fix for bug that was keeping surveys displayed after the user tapped the close button.
v4.22.2
- add: Support for rendering of server images in session replays.
- fix: Fix for crash when calling multiple SDK functions from background threads.
v4.21.6
- add: Replays: Added the ability to mask views based on class names.
- fix: Replays: Stop touch capture on keyboard when displaying.
v4.21.5
- add: Ability to turn off session replay capture.
- fix: Duplicate event listener callbacks fixed.
v4.21.0
- add: Session replays.
- fix: Prevent config from happening if it has already been called.
- fix: Escape single quotes in eventName.
v4.20.2
- add:
x-ul-package-versionheader to report mobile SDK plugin versions - fix: set default
cssStringin getBackgroundColor to prevent regex match failing
v4.19.2
- fix: calling track() from background thread would sporadically cause a SIGSEGV
- chore: still on web sdk 2.24.4
v4.19.1
- fix:
setPreviewKeywas not working because of old web sdk version - chore: update web sdk to 2.24.4
v4.19.0
- add: add
setPreviewKeyinterface method for customer to set previewKey via deep link - fix: execution order of custom lifecycle event handlers
- fix: dismissOnPageChange event race condition for events fired before
sdkReady - fix: Webview bottom background color based on custom styles configured for survey
- chore: update web sdk to 2.24.2
v4.18.0
- add: support for isOverride flag to allow overriding experiments while integrating with Optimizely
- add: support for survey lifecycle events
v4.17.0
- add: added a showSurveyCallback to allow dynamically manage whether to show the survey or not
- fix: fixed a issue that results in a UI blocking routine introduced from 4.15.0
- chore: update web sdk to 2.24.0
v4.16.0
- add: add integrateOptimizelyExperiments in the public SprigAPI
- chore: update to web sdk 2.23.2
v4.15.0
- add: add dismissOnPageChange functionality to iOS
- add: add private interface methods for importing LaunchDarkly flag to variation index mapping
- chore: update to web sdk 2.23.0
v4.14.0
- add: add additional interface for boolean and number types for setVisitorAttribute
- fix: fix an issue preventing scrolling after answering an open text question
- chore: update to web sdk 2.21.7
v4.13.0
- add: Add new optional parameter to configure function
- chore: remove storage.swift
- chore: add ios legacy build automation
- chore: update to web sdk 2.21.3
v4.12.1
- New EventPayload object to simplify calling track methods available for ObjC projects
- Allows public methods (excluding displaySurvey and other UI methods) to be called from a background thread
- Uses web 2.19.7
v4.8.6
- Built using xcode 14. Bitcode is removed in xcode 14, please update your build environment for compatibility. Xcode 13 compatible builds will be available in a later release.
- Bug fixes and improvements
v4.8.4
- Added a public api method trackAndPresentWithEventName that allows presenting survey immediately after tracking an event
- Bug fixes and improvements
v4.8.3
- Added a public api method setVisitorAttributes that allows setting user id and partner anonymous id
v4.8.2
- Added a public api method to track event with optional parameters userId and partner anonymous id
- Gracefully handle configure from being called multiple times
v4.8.0
- Added support for new question types, functionalities and bug fixes
- removed presentDebugSurvey
- deprecated the NSNumber visitorIdentifier in preference to the String visitorIdentifierString
v4.4.3
- removed arm64 from excluded architecture to support simulator builds
v4.4.2
- Fixed reported SDK version
- Security improvements
v4.4.1
- Built with Xcode 13.0 (13A233)
v4.4.0
- New Sprig namespace, you can now import and use the Sprig singleton
- Built with Xcode 12.5.1 (12E507)
v4.4.0-beta
- New Sprig namespace, you can now import and use the Sprig singleton
- Built with Xcode 13.0 beta (13A5155e)
v4.3.0-beta
- Built with Xcode 13.0 beta (13A5155e) which fixes the “Unable to use malformed module source info” build error
v4.3.0
- Added support for text url prompt, a new question type that allows external link with informational title and body text.
v4.2.1
- Fixes bug: When visitor id changes when a survey is in progress, the responses for that survey should be associated with the visitor id at the time the survey was delivered.
v4.2.0
- Added support for multiple choice multi-select skip logic
v4.1.1
- Bug fixes and improvements
v4.1.0
- Added the ability to dynamically control the question text and thanks card text from dashboard settings
v3.2.0
- Support visitorId as string type
- Improved network performance when app is backgrounded
v3.1.1
- Included i386 architecture to framework
v3.1.0
- Added setVisitorAttributes(_ attributes: [String: String]) which allows setting multiple attributes at a time, saving network round trips
- Added removeVisitorAttributes(_ attributes: [String])
v3.0.0
- Updated UserLeap class to be visible to Objective-C projects
- UserLeap.visitorIdentifier type has been changed from Int? to NSNumber?
- Reachability class which was erroneously public is now private
- Calling UserLeap init() is no longer allowed, please access through the singleton shared method
v2.3.3
- Build with Xcode 12A6163b
v2.3.3
- Fixed bug with multiple choice routing logic
- Built with Xcode 12 beta 2, Swift 5.3
v2.3.2
- Improved implementation of UserLeap.shared.setLocale()
v2.3.1
- Added UserLeap.shared.setLocale() so clients can override static text localization
v2.3.0
- Added localization for ja, ko, fr, ru, zh, de, hi
v2.2.0
- Allow visitors to see and respond to the same survey if the customers wants (done through the dashboard)
v2.1.0
- Added NPS question type support
v2.0.0
- Change framework name to UserLeapKit so it doesn’t conflict with class UserLeap
v1.1.0
- Enabled Module Stability
- Added disableNetworkAccess parameter
v1.0.2
- Bump, no changes
v1.0.1
- Fixed: Presenting the debug survey before the SDK finishes initializing can cause non-main-thread UI operations
v1.0.0
- The first version