> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sprig.com/llms.txt
> Use this file to discover all available pages before exploring further.

# iOS Changelog

<Info>
  **How to read this changelog:** [Understanding SDK changelog urgency and impact](/docs/developer-center/sdk-changelog)
</Info>

<Update label="Sep 22, 2026" tags={["Low"]}>
  ## v4.36.1

  **Recommended if you use:** Surveys on iPad

  * fix: Fix for survey layout issue when resizing the host app on iPad.
</Update>

<Update label="Sep 16, 2026" tags={["Low"]}>
  ## v4.36.0

  **Recommended if you use:** URL Prompt question type

  * chore: Updated the bundled Web SDK to [v2.53.0](/docs/developer-center/sdk-changelog/web-changelog#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.
</Update>

<Update label="Aug 27, 2026" tags={["High"]}>
  ## v4.35.0

  **Recommended if you use:** survey lifecycle events

  * chore: Updated the bundled Web SDK to [v2.51.0](/docs/developer-center/sdk-changelog/web-changelog#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.
</Update>

<Update label="Aug 5, 2026" tags={["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.
</Update>

<Update label="Jul 22, 2026">
  ## v4.33.1

  * chore: Updated WebSDK to v2.49.0.
</Update>

<Update label="Jul 10, 2026">
  ## v4.33.0

  * chore: Updated WebSDK to v2.48.2.
  * add: questionAnswered lifecycle event added.
</Update>

<Update label="Jun 15, 2026">
  ## v4.32.3

  * chore: Changes to error logging.
</Update>

<Update label="Jun 10, 2026">
  ## v4.32.2

  * chore: Removed WebSDK logging.
</Update>

<Update label="Jun 9, 2026">
  ## v4.32.1

  * chore: Updated WebSDK to v2.46.1.
</Update>

<Update label="Jun 4, 2026">
  ## v4.32.0

  * chore: Updated WebSDK to v2.46.0.
</Update>

<Update label="May 21, 2026">
  ## 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.
</Update>

<Update label="Apr 24, 2026">
  ## v4.30.0

  * chore: Updated WebSDK to v2.44.0.
</Update>

<Update label="Apr 3, 2026">
  ## v4.29.0

  * chore: Updated WebSDK to v2.43.0.
</Update>

<Update label="Mar 25, 2026">
  ## v4.28.0

  * chore: Updated WebSDK to v2.42.1.
  * add: Returning new previousSurveyReady survey state.
  * add: Logging enhancements.
</Update>

<Update label="Mar 17, 2026">
  ## v4.27.3

  * add: Added additional survey state logging.
</Update>

<Update label="Mar 16, 2026">
  ## v4.27.2

  * add: Additional debug logging for surveys.
</Update>

<Update label="Mar 12, 2026">
  ## v4.27.1

  * fix: For for sliding surveys when the keyboard is displayed.
</Update>

<Update label="Mar 6, 2026">
  ## v4.27.0

  * chore: Updated WebSDK to v2.41.3.
  * add: Updates to survey transition animations.
  * add: Support for Display Logic.
</Update>

<Update label="Feb 11, 2026">
  ## v4.26.2

  * chore: Changed the minimum supported iOS version to 15.0.
</Update>

<Update label="Feb 9, 2026">
  ## v4.26.1

  * add: Survey animation enhancements.
  * add: Updated WebSDK to v2.40.3.
</Update>

<Update label="Feb 3, 2026">
  ## v4.26.0

  * add: Support to pause and unpause surveys.
</Update>

<Update label="Dec 17, 2025">
  ## v4.25.2

  * add: Updated WebSDK to v2.39.3.
  * add: Support for Conversational surveys.
</Update>

<Update label="Nov 3, 2025">
  ## 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
</Update>

<Update label="Oct 13, 2025">
  ## 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.
</Update>

<Update label="Aug 12, 2025">
  ## 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.
</Update>

<Update label="Jul 16, 2025">
  ## 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.
</Update>

<Update label="Jul 2, 2025">
  ## 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.
</Update>

<Update label="Jun 17, 2025">
  ## v4.24.4

  * fix: Changed logic in replays to only truncate text if it is masked.
</Update>

<Update label="Jun 9, 2025">
  ## 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.
</Update>

<Update label="Jun 5, 2025">
  ## v4.24.2

  * add: Uploading of partial session replay clips after capture has been stopped due to time on main thread exceeding the threshold.
</Update>

<Update label="May 29, 2025">
  ## 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.
</Update>

<Update label="Apr 29, 2025">
  ## 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.
</Update>

<Update label="Mar 31, 2025">
  ## 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
</Update>

<Update label="Mar 11, 2025">
  ## v4.23.9

  * fix: Fix for bug that was keeping surveys displayed after the user tapped the close button.
</Update>

<Update label="Feb 27, 2025">
  ## v4.23.8

  * fix: Fix for race condition that could potentially cause blank surveys.
</Update>

<Update label="Feb 14, 2025">
  ## v4.23.7

  * fix: Fix for session replays ignoring max duration value from server.
</Update>

<Update label="Jan 29, 2025">
  ## v4.23.6

  * fix: Fix for session replays rendering issue.
</Update>

<Update label="Jan 9, 2025">
  ## v4.23.5

  * add: Baseline support for SwiftUI in session replays.
</Update>

<Update label="Dec 12, 2024">
  ## v4.23.4

  * fix: Fixed issues with session replays.
</Update>

<Update label="Feb 6, 2024">
  ## v4.23.3

  * Interface fix
</Update>

<Update label="Dec 5, 2024">
  ## v4.23.2

  * add: Functionality for React Native iOS replays
</Update>

<Update label="Nov 19, 2024">
  ## v4.23.1

  * fix: Fix for threading issue triggered by config being called multiple times
</Update>

<Update label="Oct 25, 2024">
  ## v4.23.0

  * add: Support for accordion display matrix questions.
</Update>

<Update label="Oct 3, 2025">
  ## v4.22.3

  * add: Check for available disk space before initiating session replay.
</Update>

<Update label="Sep 24, 2024">
  ## 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.
</Update>

<Update label="Aug 29, 2024">
  ## v4.22.1

  * add: Session Replay fidelity enhancements around tinting symbols and text layout.
</Update>

<Update label="Aug 27, 2024">
  ## v4.22.0

  * add: Stability and performance enhancements for Session Replays.
</Update>

<Update label="Aug 16, 2024">
  ## v4.21.9

  * fix: Support survey delays greater than 2 seconds due to WebView limitations
</Update>

<Update label="May 10, 2024">
  ## v4.21.8

  * fix: Added thread validation when calling track event.
</Update>

<Update label="May 7, 2024">
  ## v4.21.7

  * add: Replays: Added the ability to change SPS in the server config.
</Update>

<Update label="Apr 25, 2024">
  ## v4.21.6

  * add: Replays: Added the ability to mask views based on class names.
  * fix: Replays: Stop touch capture on keyboard when displaying.
</Update>

<Update label="Apr 12, 2024">
  ## v4.21.5

  * add: Ability to turn off session replay capture.
  * fix: Duplicate event listener callbacks fixed.
</Update>

<Update label="Mar 21, 2024">
  ## v4.21.4

  * add: Privacy Manifest.
  * fix: Added logic to dimiss active survey if it is never presented.
</Update>

<Update label="Mar 15, 2024">
  ## v4.21.3

  * fix: Revert top level UIViewController check.
</Update>

<Update label="Mar 12, 2024">
  ## v4.21.2

  * fix: Small bug fixes.
</Update>

<Update label="Feb 27, 2024">
  ## v4.21.1

  * fix: Fix for endpoint issue.
</Update>

<Update label="Feb 27, 2024">
  ## v4.21.0

  * add: Session replays.
  * fix: Prevent config from happening if it has already been called.
  * fix: Escape single quotes in eventName.
</Update>

<Update label="Jan 25, 2024">
  ## v4.20.2

  * add: `x-ul-package-version` header to report mobile SDK plugin versions
  * fix: set default `cssString` in getBackgroundColor to prevent regex match failing
</Update>

<Update label="Dec 8, 2023">
  ## v4.20.1

  * fix: Added missing JS files
</Update>

<Update label="Oct 9, 2023">
  ## v4.19.2

  * fix: calling track() from background thread would sporadically cause a SIGSEGV
  * chore: still on web sdk 2.24.4
</Update>

<Update label="Sep 26, 2023">
  ## v4.19.1

  * fix: `setPreviewKey` was not working because of old web sdk version
  * chore: update web sdk to 2.24.4
</Update>

<Update label="Sep 18, 2023">
  ## v4.19.0

  * add: add `setPreviewKey` interface 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
</Update>

<Update label="Aug 31, 2023">
  ## v4.18.0

  * add: support for isOverride flag to allow overriding experiments while integrating with Optimizely
  * add: support for survey lifecycle events
</Update>

<Update label="Jul 7, 2023">
  ## 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
</Update>

<Update label="Jun 1, 2023">
  ## v4.16.0

  * add: add integrateOptimizelyExperiments in the public SprigAPI
  * chore: update to web sdk 2.23.2
</Update>

<Update label="Jun 1, 2023">
  ## 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
</Update>

<Update label="Apr 3, 2023">
  ## 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
</Update>

<Update label="Feb 23, 2023">
  ## 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
</Update>

<Update label="Jan 9, 2023">
  ## 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
</Update>

<Update label="Dec 6, 2022">
  ## v4.12.0

  * New EventPayload object to simplify calling track methods
  * Uses web 2.19.7
</Update>

<Update label="Nov 9, 2022">
  ## v4.11.1

  * Fixed an issue in text url prompt that prevents opening in external browser
</Update>

<Update label="Oct 31, 2022">
  ## v4.11.0

  * Added mobile trigger delay and optimizely integration
  * Bug fixes and improvements
</Update>

<Update label="Oct 21, 2022">
  ## v4.10.0

  * Added required questions in the sdk
  * Bug fixes and improvements
</Update>

<Update label="Oct 13, 2022">
  ## v4.9.0

  * Added event properties in the sdk
  * Bug fixes and improvements
</Update>

<Update label="Sep 30, 2022">
  ## 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
</Update>

<Update label="Aug 31, 2025">
  ## v4.8.5

  * Bug fixes and improvements
</Update>

<Update label="Aug 19, 2022">
  ## v4.8.4

  * Added a public api method trackAndPresentWithEventName that allows presenting survey immediately after tracking an event
  * Bug fixes and improvements
</Update>

<Update label="Aug 15, 2022">
  ## v4.8.3

  * Added a public api method setVisitorAttributes that allows setting user id and partner anonymous id
</Update>

<Update label="Jul 22, 2022">
  ## 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
</Update>

<Update label="Jul 20, 2022">
  ## v4.8.1

  * Added an additional public api for setting the anonymous id from partner's integration
</Update>

<Update label="Jul 14, 2022">
  ## 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
</Update>

<Update label="Feb 16, 2022">
  ## v4.7.0

  * license update
  * bug fixes and improvements
</Update>

<Update label="Dec 20, 2021">
  ## v4.6.0

  * support SPM
</Update>

<Update label="Dec 13, 2021">
  ## v4.5.0

  * built sdk using xcframework
</Update>

<Update label="Dec 8, 2021">
  ## v4.4.4

  * fixed an sdk versioning issue that omitted the change in 4.4.3
</Update>

<Update>
  ## v4.4.3

  * removed arm64 from excluded architecture to support simulator builds
</Update>

<Update>
  ## v4.4.2

  * Fixed reported SDK version
  * Security improvements
</Update>

<Update>
  ## v4.4.1

  * Built with Xcode 13.0 (13A233)
</Update>

<Update>
  ## v4.4.0

  * New Sprig namespace, you can now import and use the Sprig singleton
  * Built with Xcode 12.5.1 (12E507)
</Update>

<Update>
  ## v4.4.0-beta

  * New Sprig namespace, you can now import and use the Sprig singleton
  * Built with Xcode 13.0 beta (13A5155e)
</Update>

<Update>
  ## v4.3.0-beta

  * Built with Xcode 13.0 beta (13A5155e) which fixes the "Unable to use malformed module source info" build error
</Update>

<Update>
  ## v4.3.0

  * Added support for text url prompt, a new question type that allows external link with informational title and body text.
</Update>

<Update>
  ## 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.
</Update>

<Update>
  ## v4.2.0

  * Added support for multiple choice multi-select skip logic
</Update>

<Update>
  ## v4.1.1

  * Bug fixes and improvements
</Update>

<Update>
  ## v4.1.0

  * Added the ability to dynamically control the question text and thanks card text from dashboard settings
</Update>

<Update>
  ## v3.2.0

  * Support visitorId as string type
  * Improved network performance when app is backgrounded
</Update>

<Update>
  ## v3.1.1

  * Included i386 architecture to framework
</Update>

<Update>
  ## v3.1.0

  * Added setVisitorAttributes(\_ attributes: \[String: String]) which allows setting multiple attributes at a time, saving network round trips
  * Added removeVisitorAttributes(\_ attributes: \[String])
</Update>

<Update>
  ## 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
</Update>

<Update>
  ## v2.3.3

  * Build with Xcode 12A6163b
</Update>

<Update>
  ## v2.3.3

  * Fixed bug with multiple choice routing logic
  * Built with Xcode 12 beta 2, Swift 5.3
</Update>

<Update>
  ## v2.3.2

  * Improved implementation of UserLeap.shared.setLocale()
</Update>

<Update>
  ## v2.3.1

  * Added UserLeap.shared.setLocale() so clients can override static text localization
</Update>

<Update>
  ## v2.3.0

  * Added localization for ja, ko, fr, ru, zh, de, hi
</Update>

<Update>
  ## v2.2.0

  * Allow visitors to see and respond to the same survey if the customers wants (done through the dashboard)
</Update>

<Update>
  ## v2.1.0

  * Added NPS question type support
</Update>

<Update>
  ## v2.0.0

  * Change framework name to UserLeapKit so it doesn't conflict with class UserLeap
</Update>

<Update>
  ## v1.1.0

  * Enabled Module Stability
  * Added disableNetworkAccess parameter
</Update>

<Update>
  ## v1.0.2

  * Bump, no changes
</Update>

<Update>
  ## v1.0.1

  * Fixed: Presenting the debug survey before the SDK finishes initializing can cause non-main-thread UI operations
</Update>

<Update>
  ## v1.0.0

  * The first version
</Update>
