Skip to main content

iOS/tvOS SDK Changelog


April 22nd, 2024

  • Initial release of the 6.0.0 SDK.
  • This major version introduces a new core architecture focusing on:
    • OpenTelemetry Tracing and Logging at its core.
    • Persistence in SQLite using GRDB
    • Swift-first interface for developers of Apple platforms
  • Automatic Instrumentation of:
    • Application Crash Reports
    • Network Requests
    • Device Low Power Mode
    • Application Memory Warnings
    • UIViewController appearance
    • User Tap Gestures
  • Manual instrumentation using:
    • Spans for Performance Tracing
    • Log messages
    • Breadcrumbs
  • Allows for generic export of Traces and Logs via the protocols in the OpenTelemetrySdk.
  • Allows for custom Automatic Instrumentation via CaptureService subclasses


May 10, 2024

  • Fixed a bug that prevented setting up Username and Email.
  • Fixed a crash that could occur when attempting to serialize spans.
  • Improved network instrumentation to reduce slowness during startup requests.
  • Removed stack traces from informational logs.
  • Made improvements to the startup performance of the SDK.


April 11, 2024

  • Adds coordinated file access in upload cache. Will better handle file contention between host app and extension processes
  • Adds logic to prevent rare instances of session payloads from being sent with empty app and device metadata
  • Removes logic that took screenshots. This has been deprecated since 5.23.0
  • Improvements to upload retry logic to prevent immediate retries if an error occurs that is likely to repeat
  • Improvements to persistence logic when rotating data storage. Will now rotate files less frequently
  • Improvements to startup logic to defer operations that require file IO


March 6, 2024

  • Add interface for hosted SDKs to use updated performance tracing
  • Fixed missing network body capture data in some scenerios
  • Adds ability for EmbraceExtensions to disable Embrace data uploads. Data will be deferred to the host app for the upload.
  • Improvements to SDK startup time


Jan 26, 2024

  • Fix potential lost data for network body capture


Jan 22, 2024

  • Fix retain cycle that can occur if using [NSURLSession sessionWithConfiguration:delegate:delegateQueue:] and passing a delegate object with a strong reference to that NSURLSession.


Jan 18, 2024

  • Fixes issue that would prevent permanent session properties from being stored correctly.
  • Fixes extremely rare circumstance that would cause extension crash reports from being removed before being uploaded.


Jan 3, 2024

  • Potential fix for crash related to network request capture.
  • Fixes taps being captured when both CAPTURE_TAPPED_ELEMENTS and CAPTURE_COORDINATES are disabled.


Dec 19, 2023

  • Fixed an issue in the URL normalization process to ensure thread safety and prevent crashes due to synchronization conflicts.
  • Fixes linker problem for Embrace Unity iOS SDK.


Dec 19, 2023

  • all changes rolled into 5.24.2


Nov 30, 2023

  • Updates logic when writing to disk to better catch exceptions that can occur
  • Updates performance tracing to be enabled by default
  • Updates upload tool to distribute a universal binary
  • Fixes crash in EMBSessionMetadataFile
  • Fixes crash fileForClosedSpansNamed:. Introduced in 5.19.4, partly addressed in 5.23.1
  • Fixes crash in -[NSInvocation getArgument:atIndex:]. Introduced in 5.23.1


Oct 27, 2023

  • Fixes bug that could cause wrong timestamp to appear in crash reports


Sept 26, 2023

  • Fixes memory issue when generating a session payload with numerous (1000+) network requests. Introduced in 5.22.0.
  • Fix crash in fileForClosedSpansNamed:. Introduced in 5.19.4


Sept 20, 2023

  • Introduces Embrace performance tracing beta
  • Updates public interface for consistency across platforms. Adds deprecation messages for outdated methods
  • Adds method to retrieve the current sessionId
  • Begins signing SDK for Xcode 15
  • Adds privacy manifest for Xcode 15
  • Changes the default log level for SDK console logs to "none"
  • Fixes warning that occurs when building for iOS extension


Aug 14, 2023

  • Enhancements in Data Persistence related to Sessions.
  • Improved support for WKNavigationDelegate APIs.


July 10, 2023

  • Updates to interface when adding exceptions from Unity, Flutter, and React Native
  • Updates API payload to match interface changes for exceptions


June 28, 2023

  • Added API for querying the end state of the last run
  • Fixed Unity unhandled exception logging behavior
  • Updated Web Vitals feature defaults
  • Migrated storage location of some SDK data


June 16, 2023

  • Fixes a problem that would cause a deadlock when using the logging interface


June 14, 2023


This version has been pulled as an issue was discovered that would cause the app to lock up when using any logging interface. Please use 5.20.1 instead.

  • Fixed a bug that prevented view appearance breadcrumbs from spanning across sessions
  • Fixes concurrency issue that could occur when using moments
  • Fixes deadlock that could occur when querying the applicationState on UIApplication
  • Fixes bug that could occur when writing session metadata to disk, causing corrupt session data
  • Adds API to manually log push notifications from Unity
  • Updates the dsym upload tool to leverage the CI_ARCHIVE_PATH envvar in the framework search paths if set. This is common in Xcode Cloud CI.
  • Improvements to the upload subsystem to better handle the transfer of data to the Embrace backend. This includes optimizing how payloads are created to prevent unnecessary work, and an updated retry system to better handle network failures.


May 29, 2023

  • Fixed logHandledException missing the "reason" property.
  • Fix rare crash in EMBDevice buildUUID that was occurring on the Unity platform.
  • Fix issues with JS Exceptions on React Native


May 23, 2023

  • Improvements to diskIO latency that could occur during an app cold start
  • Adds ability to disable network request capture using the Embrace-Info.plist key NETWORK_CAPTURE_ENABLED. If set to false, Embrace will not capture any network requests.


May 2, 2023

  • Added the ability to capture core web vitals for web view experiences in your app.


April 27, 2023

  • Fix crash happened when try to write to disk without free space (introduced in 5.17.0)
  • Fixed crash that could occur in EMBSpanContainer when deserializing invalid/corrupt data (introduced in 5.17.0)


April 25, 2023

  • Fixed an issue that was causing a deadlock in some rare circumstances


April 19, 2023

  • Fixed issue where cold start sessions could report the incorrect app state (i.e. forground sessions shows as background)
  • Fixed memory leak on swift class name demangling
  • Fix to allow manual end session calls for extensions


April 12, 2023

  • Fixed issue where view appearance breadcrumbs would not work properly when re-adding the same instance to the navigation stack multiple times.
  • Fixed issue that caused breadcrumb limits to not be applied correctly
  • Improvements to start method to defer tasks and have a more consistent runtime


April 04, 2023

  • Fixes performance issue when serializing network data in session payload
  • Fixes duplication of custom log breadcrumbs.


March 21, 2023


This version has known issues and should not be used

  • Fix for a very rare crash on archiving current session
  • store the latest breadcrumbs instead of the first


March 14, 2023

  • Improves SDK startup performance by moving disk usage collection to background queue
  • Added the ability to report the Flutter error runtime type.


March 01, 2023

  • Fix issue that caused cold start background sessions to be captured when configuration did not enable them
  • Removes validation check for http and https schemes in network requests. Will now allow ws and wss URLs


February 08, 2023

  • Updates breadcrumb limit to 100
  • Fixes issue that would cause network requests in Unity to show a duration of zero


January 31st, 2023

  • Add logic to demangle SwiftUI view names. Will now be in a more readable format.
  • Fix issue that caused all network requests from Unity to be flagged as error.
  • Fix crash that occurs when archiving session data.
  • Updates on device storage for user, device, and session properties.


January 18th, 2023

  • Added a new PUSH_NOTIFICATIONS_CAPTURE_MODE config that provides control on how Embrace will capture push notifications. Possible modes are: manual and automatic.


January 9th, 2023

  • Unity: Fixed an issue where unhandled logs would sometimes not be saved.
  • Made endAppStartup return when the SDK hasnt been started to prevent a crash
  • React Native: implemented a RN exclusive breadcrumb to handle actions from State Management.


December 13th, 2022

  • Fixes issue that could prevent logs from appearing in session if many sessions occur without app cold start
  • Removes call to deprecated method on NSKeyedUnarchiver
  • Updates tap capture behavior to prevent coordinate capture for touches that occur on system keyboard
  • Adds ability to capture breadcrumbs from Push Notifications


December 6th, 2022

  • setBackgroundMode removed in favor of the dashboard configuration options
  • Re-wrote configuration system in order to ensure easier code modification and performance improvements.


November 28th, 2022

  • Fix potential loss of logs in edge case
  • Potential infinite loop fix when using AFNetworking
  • Potential infinite loop fixed when for rare edge case with logging
  • Potential undefined behavior fix


November 15th, 2022

  • Ensured remote config fetch does not impact main thread
  • setBackgroundMode API Deprecation


November 8th, 2022

  • Fix issue where the included upload utility and script would not have executable permissions when distributed through Cocoapods.
  • Bumped upload utility version to 10.0.4


November 8th, 2022

  • Fix issue where tap element capture would not be enabled by default when passing an EmbraceConfig object at runtime to initialize the SDK.
  • Fix issue on Unity where a crash signal would cause the app to freeze instead of exit.


October 20th, 2022

  • Added a "enableIntegrationHelp" parameter to the SDK initialization methods. When enabled (and only on development), the SDK will show an alert view when there's a critical error during the initialization process.
  • Fix session end time potentially being incorrect for crashes.
  • Fixed Unity crashes not saving properly.


October 6th, 2022

  • Fixes bug in crash handler introduced in 5.9.3.
  • Adds unity sdk version property.


October 3rd, 2022

  • Adds support for Flutter


September 16th, 2022

  • Improvements to installation of signal handler to more consistently receive crash information.


July 29th, 2022

  • Fixes issue that would prevent Embrace crash reporter from being enabled by default.


July 19th, 2022

  • Enforces limit when calling logBreadcrumbWithMessage.
  • Improves file reading performance when uploading a large session.


June 30th, 2022

  • Fixes incompatibility issues with SafeDK.


June 17th, 2022

  • Fixes crash that could occur when uploading session data.
  • Improves handling of memory allocation when uploading session data.


June 8th, 2022

  • Adds ability to disable the element name from being included in tap capture. Set the Embrace-Info.plist boolean CAPTURE_TAPPED_ELEMENTS to false to disable this feature.


May 31st, 2022

  • Fix crash report enabled property. The remote config can't re-enable it
  • Fix for Embrace delegate callback not happening
  • Added property for whether or not the sdk has started
  • Fix for very rare edge case of properties dictionary trying to be serialized when changed


April 12th, 2022

  • Fixed duplicate send of RN js crashes


March 14th, 2022

  • Fixed for missing some network requests metrics.
  • Fix potential ANR on launch that could cause a crash in some situations
  • Added Log Message variants that allow for logging caught exceptions


January 19th, 2022

  • Fix potential ANR on launch.


December 22nd, 2021

  • Fixed Crash on startup


December 22nd, 2021

  • Fixed Typo in key


December 21st, 2021

  • Modified CUSTOM_PATH_HEAEDER functionality to be more customizable and have a more general use case.
  • Defaulted Screenshots to OFF


December 16th, 2021

  • Added CUSTOM_PATH_HEADER config option that allows for automatically generating the x-emb-path value from a specified header.


November 24th, 2021

  • Ensure embrace always receives crashes first.
  • Updated carthage integration to work with newer format
  • Fix for bug introduced by apple involving low power mode
  • Fix for network domain dictionary crash


November 5th, 2021

  • Remove Console Logs


October 28, 2021

  • Fix Embrace version number


October 7, 2021

  • Fixed crash related to network data capture introduced in 5.6.2


September 22nd, 2021

  • Fixed EMBWKNavigationProxy implementation
  • Fixed multithreading access to the network domains dictionary


August 9th, 2021

  • iOS 15 Support


July 27th, 2021

  • Fixed memory leak that occured during startup
  • Fix for missing sessions on upgrading between v4 of sdk to v5


July 13th, 2021

  • Fix disabled SDK in a scene-based app
  • Fix micro sessions in a scene-baed app


Jun 15th, 2021

  • Manually logged network request can now include an error with no response code
  • Ensure that cancelled network requests are correctly filtered


May 21st, 2021

  • Update background mode logic based on beta feedback
  • New configuration options to control view tracking


April 30th, 2021

  • Etag support for config fetches
  • Hybrid background mode API added
  • Allow filtering of cancelled http requests by domain
  • Fix background task usage to avoid expired tasks
  • Use weak retention when dealing with WKNavigationDelegates
  • Support for Firebase 7.4.0 and beyond
  • Unity unhandled exception support


April 8th, 2021

  • Resolve crash when tracking views with nil titles
  • Resolve crash when serializing json data


March 25th, 2021


This version has known issues and should not be used

  • Optimization for object serialization
  • New API to disable uploading for battery/data conscious scenarios
  • Fix memory leak when using the OS_LOG feature
  • Ensure failed sessions are uploaded whenever possible
  • Fix memory leak when using GAD WKWebView instances
  • Fix crash with NSURLSession proxying


March 9th, 2021

  • Fix crash when view category methods are called off main thread


Feb 8th, 2021

  • Fix unarchiving nil strings from disk


Feb 5th, 2021

  • Expose custom network event logging on native interface
  • Handle WKWebView terminations correctly when loadHTMLString is used


Jan 29th, 2021

  • Fix memory leak when proxying a WKWebView with a WKNavigationDelegate


Jan 26th, 2021

  • Stop using expired URLSession on resume
  • Optimize collection of device metadata to be off main thread
  • Optimize session payload creation login on app suspension


Jan 18th, 2021

  • Add queueing to streaming cache updates
  • Prevent the same message from uploading multiple times
  • Ensure session number persists across upgrades
  • Add API to pause/resume tap coordinate capture
  • Improve performance of network capture filtering


Dec 10th, 2020

  • Ensure sessions with abnormal exits have correct endtimes
  • Update dSYM upload utility with better diagnostics


Dec 1st, 2020

  • Framework is now a universal xcframework
  • Network filtering via embrace-info.plist now supported on v5
  • Fix session-to-session data handoffs
  • Fix crashes related to filtering network capture arrays
  • Fix crash related to sending failed session start message
  • Maximum length for webview url capture is now 1024 bytes
  • Log events now have limits for each type per session


Oct 30, 2020

  • Refactor binary image handling so it happens lazily instead of at start
  • Improve recognition of special characters in module names for log message stack traces
  • Fix threading crash while recording network activity on 32 bit devices


Oct 30, 2020

  • Refactor binary image handling so it happens lazily instead of at start
  • Improve recognition of special characters in module names for log message stack traces


Oct 22, 2020

  • ensure handled exceptions are properly recorded


Oct 22, 2020

  • ensure handled exceptions are properly recorded


Oct 19, 2020

  • ensure tvos crashes are correctly marked in metadata
  • ensure failed sessions are always uploaded
  • tight session duration tracking


Oct 16, 2020

  • add support for modern firebase crash reports


Oct 12, 2020

  • fix crash when launching through Xcode with customize trace_id header
  • fix mis-tracked start moments


Oct 12, 2020

  • fix crash when launching through Xcode with customize trace_id header


Oct 1, 2020

  • Fix power manager hang on launch


Sep 30, 2020

  • Change how failed events are queued to fix perf and OOM issues
  • Update code for xcode 12 standards


Sep 30, 2020

  • Fix crash in unarchiver usage
  • Fix crash in filtered array with predicate usage
  • low power warnings re-added to session payloads


Sep 25, 2020

  • Fix caught exception on non-firebase crash upload path
  • Session properties in event payloads
  • memory warnings re-added to session payloads


Sep 24, 2020

  • Fix crash in EMBNetworkManager's predicate logic
  • Fix sendSession:addObject crash
  • Update to firebase's latest formats to mirror crash reports


Sep 24, 2020

  • fix crash in EMBNetworkManager's predicate logic


Sep 21, 2020

  • Change threading model so all IO callbacks happen on the main thread
  • Fix crash reporting auto-detection for cases without an Embrace-Info.plist
  • Reinstall signal handlers when crash reporting enabled via remote config
  • Startup moment duration and threshold included in the session payload


Sep 16, 2020

  • Deployment target upgraded to 9 for Xcode 12 support


Sep 15, 2020

  • Deployment target upgraded to 9 for Xcode 12 support


Sep 9, 2020

  • Fix blocked downloads when using expo + flex for debugging


Sep 8, 2020

  • Add config filter to disable URLSessionDelegate swizzling


Sep 1, 2020

  • Fix for crash in [EMBSession serialize]
  • Fix for crash in NSKeyedUnarchiver
  • Ensure background tasks are always ended before starting a new task


Aug 28, 2020

  • Hotfix for V3 migration of cache


Aug 28, 2020

  • Improve performance when large number of queued failed events exist
  • Fix rare crash in sendShortSession


Aug 14, 2020

  • Fix crash in EMBNetworkManager


Aug 14, 2020

  • Fix crash in EMBNetworkManager
  • This release branches from 4.2.4 for users unable to update to 5.0 releases


Aug 10, 2020

  • Fix web-thread-termination outcome tracking
  • Exception logging for corrupt proxy invocations
  • Better support for upstream 'cmd' renaming (ex: Flipper/Flex style swizzling)


Aug 6, 2020

  • Improve crash linking reliability to sessions
  • Fix compatibility with Firebase's new crashlytics interface


Aug 4, 2020

  • Fix threading crash in EMBStreamingBreadcrumbManager's cache layer
  • Apple TV compatible framework now included in release


July 27, 2020

  • Use dispatch-io channels to improve performance and improve session resolution
  • Update to support locally build framework dsyms


July 15, 2020

  • Update to support multiple 3rd party source-built dependencies
  • Expose all configuration options on EmbraceConfig object for documentation
  • Update nullability hints for swift compatibility

4.2.3 (DOA)


July 13, 2020

  • Stop EMBProxy from invoking nil invocation
  • Disable clean logging mode

4.2.1 (DOA)


July 8, 2020

  • Improved compatibility with SafeDK
  • Report current crash handler in session to improve report collection and integrations
  • Report terminated WKWebView content threads in session
  • Process console logging data to improve crash report categorization
  • Allow crash testing while connected to a debugger


May 14, 2020

  • Improve HTTP Live Streaming (HLS) caching performance when using Embrace


May 12, 2020

  • Improved Embrace Crash Reporting Auto-Enable Logic


April 27, 2020

  • Improved retry logic


April 14, 2020

  • New config property DISABLED_URL_PATTERNS filters network requests entirely from session


April 7, 2020

  • Embrace Crash Tracking now enabled by default if no config is present and Crashlytics is not detected
  • Fix crash in gathering app file usage data


March 27, 2020

  • Improve caching of session properties to unblock React Native dev work


March 23, 2020

  • Increases KSCrash string buffer to improve React Native crash collection


March 12, 2020

  • Patched an invalid bitcode in the Embrace module from v4.1.9


March 12, 2020

  • Added client-side session-to-crash liking for stack traces received from Crashlytics

Note: Please update to the latest SDK version if you're on v4.1.9. There is a known bitcode error that is resolved in v4.1.10 and all subsequent updates


March 3, 2020

  • Added support for React Native handled exceptions

Note: Please update to the latest SDK version if you're on v4.1.8. There is a known bitcode error that is resolved in v4.1.10 and all subsequent updates


February 26, 2020

  • Added swizzling around the NSURLSession:SharedSession object to ensure we capture that traffic in all cases


February 11, 2020

  • Disabled KSCrash tracking to work around a iOS 13.4-beta crash
  • Added a custom view API (startViewWithName, endViewWithName) to allow tracking of custom view hierarchies
  • Added session properties API (addSessionProperty, removeSessionPropertyWithKey) to allow annotating the session with customized properties
  • Restored ability to automatically track DataTaskWithURL and DownloadTaskWithURL network requests in iOS 13


January 15, 2020

  • Temporarily reverted Carthage support in order to ensure AppStore compatibilities


January 14, 2020

  • Improved SDK startup time
  • Fixed crash when utilizing New Relic alongside Embrace for webkit tracking
  • When using Crashlytics alongside Embrace, duplicate reports are no longer reported to Embrace when upload to Crashlytics fails
  • Trimmed custom event property keys and values to 4096 characters
  • Added ability to encrypt network body capture using a public key


November 20, 2019

  • Fixed issue with capture of delegate-based NSURLSession calls and WKWebViews where a crash could occur if the instantiation of the network call or web view was short-lived.


November 19, 2019

  • Added more logging to describe if the SDK can be disabled in certain circumstances.


November 13, 2019

  • Fixed compatibility issue with Firebase App Performance that caused a crash when the SDK is started before Firebase.
  • Improved RN crash reporting capabilities.


October 24, 2019

  • Fixed issue with proxying of view and network delegates when no delegate is set.
  • Added option to disable capture of tap coordinates.
  • Limit custom view names to 64 characters.


October 14, 2019

  • Removed UIWebView support.
  • Apple started issuing warnings that apps using UIWebView would be rejected in the future. If your team has not yet migrated to WKWebViews, do not update past 3.7.0. We will support UIWebViews in SDK versions prior to 3.7.0.
  • Fixed issue where delegate-based network calls could fail when the Firebase Performance SDK was installed and initialized before the Embrace SDK.
  • Added support for custom view names. Instead of having the default view controller names specified in timelines, you can now define custom names.
  • Added support to skip capture of views. If certain views are not of interest, they can now be ignored.
  • Added support for React Native crashes.
  • Added support for improved React Native log stack traces.
  • Added support for upload of React Native source maps to the upload script.


August 2, 2019

  • Added option to auto-end startup moment after a certain time.
  • Disabled by default. Auto-end can be enabled via the SDK or remotely to end the startup after a time period.
  • Emit a console log warning if Crashlytics is started before Embrace.
  • Associate user info that was set during a session with that session, even if it was cleared before the session ended.
  • User ids and info are 'sticky' to a session even if cleared at the end of the session.
  • Added optional argument to endSession method to clear user info when ending the session.


July 22, 2019

  • Allow developers to pass and capture trace IDs from network request headers and have them be displayed in the session timeline for the network request.
  • Added additional timing-related data to network body capture payload.
  • Fixed potential race condition for ending moments.
  • Renamed manual network capture class initializers to be more in line with Swift conventions.


July 15, 2019

  • Added logNetworkRequest method and EmbraceNetworkRequest class to allow manual capture of network requests. The SDK is capable of automatically capturing the majority of REST network calls made by applications, but this new method allows recording of network requests that are not automatically captured, such as gRPC requests.
  • Removed the restriction that the SDK must be initialized before user identity is set.
  • Eliminated redundant network call to Embrace that contained data that is now provided to us as part of other network calls.
  • Gracefully handle multiple calls to start the SDK. We now ignore all except for the first one.


July 10, 2019

  • Added option for developers to track app launch methods (ex. background states) which we will later make visible on our dashboard.
  • Adjusted our iOS network capturing logic to streamline call collection.