Oct 14, 2025
- Fixes
- Fixed issues with the internal proxy on
URLSession.
- Fixed issues with the internal proxy on
- Improvemenets
- Improved logic around the automatic startup instrumentation.
Oct 7, 2025
- Fixes
- Fixed
autoTerminationCodebeing missing from Spans. - Bumped OTel version to OTel Core 2.1.1.
- Fixed wrong OS Variant being added to logs/traces.
- Fixed Background App Launches being detected as a Foreground Session which produced long sessions to apps without Background Session support enabled.
- Fixed
- Improvements
- Added Capture Service to detect App Hangs.
- Backtrace and Symbolication: Added ability for users to pass their own versions, using KSCrash as default.
- Added profiling to Main Thread for Hang detection.
- General internal stability improvements.
Aug 26, 2025
- Fixes
- Made some helpers public to allow building
CaptureServices. - Prevent crashes related to not being able to load the persistence layer (e.g. when disk is full)
- Made some helpers public to allow building
- Improvements
- Bumped OpenTelemetry to 2.0.2, which includes minor changes.
- Updated documentation to mark
addResourceas internal-use only.
Aug 1, 2025
-
Features
- Added support for instrumenting SwiftUI code.
- Added a new public API to purge the cache of the upload module (
Embrace.resetUploadCache). - Added the ability to provide a list of
UIViewControllernames (remote configurable) to be excluded fromTTFRandTTIcapture.
-
Fixes
- Log limits are now correctly enforced.
- Breadcrumb limits from remote config are now properly applied.
- Fixed a crash in CoreData related to non-optional Date values.
- Fixed a crash that could occur when caching failed data uploads to the backend.
- Fixed a crash when accessing
URLSessionTaskdata after the task had been released. - Fixed a potential race condition when ending and restarting a session.
- Fixed a crash caused when intercepting
AVFoundationrelated requests. - Fixed a bug that prevented certain settings from being updated when receiving remote config.
- Fixed a crash that happened when trying to write a critical log file and no space was available.
- Added the possibility to use CoreData even while the phone is locked.
- The
processIdis now aUUIDinstead of aUInt32, preventing collisions.
-
Improvements
- Improved CoreData to only persist to disk when necessary to reduce disk writes.
- Moved significant CoreData work off the main queue to prevent deadlocks and improve user experience.
- Switched journal mode from
DELETEtoWAL(remote configurable) to reduce disk writes and CPU usage. - Span names are now truncated instead of dropping spans entirely.
- Removed automatic capture of
UIHostingControllers (configurable). - The SDK now removes unused data from version
5.x.
July 7, 2025
- Fixes
- Fixed sessions being incorrectly flagged as Unrecognized Exits.
- Fixed logs generated by the
MetricKitHangCaptureServicenot being exported.
June 27, 2025
- Fixes
- Disabled a
KSCrashflag that was unintentionally enabled when switching to the official repository. This flag caused a startup regression and is now reverted to its previous behavior (as in6.9.2).
- Disabled a
June 24, 2025
- Fixes
- Fixed an issue that could cause deadlocks when public APIs were used excessively.
- Fixed the underlying problem that triggered the warning: "Binary image cache full. Not caching image" in apps with many associated binary images.
- Made a change to reduce the number of unexpected exits caused by holding onto a file lock / SQLite database lock during app suspension.
- Features
- Added support for injecting a custom OTel processor during SDK initialization.
- Improvements
- Improved how device and application metadata is persisted to reduce time and resource usage.
June 6, 2025
- Fixes
- Fixed compilation errors when having the Embrace SDK as a dependency of a static library in a SwiftPM project.
- Changes
- Added new instrumentation around application startup.
- Added capture services to capture
MetricKitreports.
May 28, 2025
- Fixes
- Fixed a crash that occurred when intercepting a
URLSessionTaskthat was resumed more than once. - Made several fixes to all public APIs to ensure they are safe to use from any thread (including the main thread).
- Fixed compatibility issues caused by Firebase Performance when it is initialized before Embrace and intercepts network requests.
- Fixed a crash that occurred when intercepting a
- Changes
- Added a new API in
Embrace.client:getCurrentPersonas(completion:)(This deprecates thecurrentPersonasgetter and its Objective-C compatible version).
- Added a new API in
May 19, 2025
- Fixes
- Fixed a crash that could occur when capturing data from requests (#217). d * Fixean issue that prevented the Network Payload Capture feature from properly capturing request/response bodies.
- Reduced overhead and memory usage when capturing response bodies in most common use cases.
- Fixed crash that happened in UI Automation environments.
- Changes
- KSCrash dependency now uses the main repository instead of a custom fork.
Apr 30, 2025
- Fixes
- Improved Core Data fetches and cleanup routines to prevent potential crashes.
- Fixed a crash that could occur when ending and restarting sessions.
Apr 25th, 2025
- Fixes
- Fixed potential threading issues with Core Data.
Apr 22th, 2025
- Changes
- Removed GRDB as a dependency.
- Reworked the internal storage system using Core Data.
Apr 16th, 2025
- Fixes
- Fixed a crash that could occur when injecting the
traceparentheader into certain types ofNSURLSessionTask. - Fixed a compatibility issue that could arise in specific conditions when our URLSession capture service was isa-swizzled by other libraries.
- Fixed a crash that could occur when injecting the
- Changes
- Added support for passing the
-ObjClinker flag via SPM by setting the environment variableEMBRACE_ENABLE_TUIST_OBJC_LINK, which is required when using the SDK in Tuist-generated projects.
- Added support for passing the
Apr 1st, 2025
- Fixes
- Fixed an issue where some
NSURLSessionDelegatemethods were not being called when usingURLSessionCaptureService. - Fixed crashes that could occur with short-lived
WKWebViewinstances whenWebViewCaptureServicewas enabled.
- Fixed an issue where some
Mar 18th, 2025
- Fixes
- Fixed some methods from
NSURLSessionDataDelegateandNSURLSessionDownloadDelegatenot being called when using aURLSessionCaptureService.
- Fixed some methods from
Mar 10th, 2025
- Features
- Added the ability to add custom stack traces to logs with
StackTraceBehavior.custom. - The
TapCaptureServicecan now be configured to capture taps on either start or end.
- Added the ability to add custom stack traces to logs with
- Fixes
- Potential fixes for core data related crashes.
- Changes
- Deprecated
Embrace.Endpoints.developmentBaseURL.
- Deprecated
Feb 12th, 2025
- Features
- Enabled Automatic View Capture functionallity by default.
- Fixes
- Fixed an issue that causes incompatibilities with libraries/apps reusing the same
URLSessionDelegateacross multipleURLSessionobjects.
- Fixed an issue that causes incompatibilities with libraries/apps reusing the same
- Changes
- Refactored the way we create proxy objects for
WKWebViewandURLSessioninstrumentation functionalities.
- Refactored the way we create proxy objects for
Feb 6th, 2025
- Features
- Possibility to add attachments to logs
- Possibility to stop the Embrace SDK from capturing and generating data
- Fixes
- Fixed an issue causing
WKWebViews to crash when calling the delegate methodwebView(_:didFinish:)whenWebViewCaptureServiceis enabled. - Fixed some potential issues with different features using proxy mechanisms (e.g.
URLSession&UNUserNotificationCenterinstrumentation).
- Fixed an issue causing
- Changes
- Beginning the migration to a new way of storing data.
Jan 22nd, 2025*
- Fixes
- Fixed an issue that caused the crash
'Cannot form weak reference to instance X of class Y'. - Fixed an issue that prevented enabling/disabling certain functionalities.
- Fixed incompatibility issues with AppLovin.
- Fixed an issue that caused the crash
Jan 10th, 2025*
- Features
- Improvements to the Automatic View Capture functionality, allowing attributes to be added to traces (
TTFRandTTI) using theaddAttributesToTrace(_:)method.
- Improvements to the Automatic View Capture functionality, allowing attributes to be added to traces (
- Fixes
- Fixed an issue causing crashes in views controllers with very short lifecycles (particularly in hosting controllers acting as internal bridges in SwiftUI).
- Fixed a bug causing compilation issues related to the use of
DispatchQueue.
Dec 12th, 2024
- Features
- Added new instrumentation for the
ViewCaptureService. Can be enabled throughViewCaptureService.Options.instrumentFirstRender. - Added url blacklist for the
URLSessionCaptureService. Can be configured throughURLSessionCaptureService.Options.ignoredURLs. - Added the ability to auto terminate spans if the session ends while the span is still open.
- Updated the OpenTelemetry dependency to v1.12.1 which fixes some concurrency related crashes.
- Improved logic around Embrace data uploads and retries.
- Deprecated
Span.markAsKeySpan().
- Added new instrumentation for the
- Fixes
- Fixed the remote config parse sometimes failing.
- Fixed the remote config cache not working properly.
- Fixed crash logs sometimes not containing the session properties.
- Fixed keychain related crash/hang during startup.
- Fixed issues with the
WebViewCaptureServicethat could lead to a crash. - Fixed issue with the
URLSessionCaptureServicewhen dealing withURLSessionDelegateobjects in Objective-C responding to methods without conforming to specific protocols.
Nov 14th, 2024
- Features
EmbraceCrashReporternow receives a list of signals to be ignored.SIGTERMis ignored by default now.
- Fixes
- Fixed network payload capture rules not working.
- Fixed
WebViewCaptureServicepreventing the web view delegate from receiving messages. - Fixed
PushNotificationCaptureServicepreventing the user notification delegate from receiving messages. - Fixed log batching logic.
Oct 29th, 2024
- Features
- Improved performance during the startup of the SDK.
- Fixes
- Fixed compilation errors in WatchOS.
- Fixed visibility of
LogLevel.
Oct 18th, 2024
- Features
- Removed
SwiftLintfromPackage.swiftas a dependency, which reduces the download size of our SDK and prevents dependency resolution conflicts. - For those consuming the SDK without an
appId,Embrace.Optionsnow includes the possibility to provide custom configuration (implementingEmbraceConfigurable).
- Removed
- Fixes
- Fixed a linking conflict issue affecting some users both with SPM and CocoaPods.
- Implemented a fix to expose user customization methods (
userName,userEmail,userIdentifier, andclearUserProperties) to Objective-C. - Fixed a bug that caused the
Span.Statusto be incorrect when exporting a session ended due to a crash.
Oct 2nd, 2024
- Fixes
- Fixed crash in
URLSessionCaptureService. - Fixed network body capture logs not being exported.
- Fixed logic for background sessions.
- Fixed linker error on simulators in iOS 17.5 and below when using cocoapods.
- Fixed crash in
Sep 26th, 2024
- Features
- Updated OpenTelemetry dependencies to v1.10.1.
- Fixes
- Fixed logs not having resources from the session when being recovered during the SDK startup.
- Fixed crash with the
gtm-session-fetcherlibrary. - Fixed KSCrash dependency compilation issues in Xcode 16.
Sep 13th, 2024
- Features
- Added the option to use the SDK without an
appIdusingEmbrace.Options. - Introduced a new parameter in the
logAPI:stackTraceBehaviorto specify the behavior for automatically capturing stack traces within a log. - Added the capability to securely capture the body of network requests.
- Added the option to use the SDK without an
- Changes
- Removed
-dynamictargets from Swift Package Manager. - Discontinued capturing the screen resolution of devices.
- Removed
- Fixes
- Updated
GRDBto the current latest version (6.29.1) to support Xcode 16. - Addressed issues related to our service for capturing Network Requests with the new concurrency system (aka.
async/await). - Fixed a crash associated with being with another player proxying
URLSession. - Resolved an issue that prevented proper forwarding of calls to the original delegate when swizzling
URLSessiondue to a retention issue. - Corrected the public API
recordCompletedSpanto setSpan.Statusconsistently with otherendmethods.
- Updated
Aug 7th, 2024
- Features
- Added new public target:
EmbraceSemanticsto expose constants and attributes used to extend OTel Semantic Conventions - Added Cocoapods support
- Added logic to link an emitted
LogRecordto the active span context - Created new APIs for
W3C.traceparentto be used to support manually instrumented network requests
- Added new public target:
- Changes
- Update
Embraceto exposeLogTypeon thelogmethod - Renamed
LogType.defaulttoLogType.message - Adds
MigrationServiceinEmbraceStoragetarget to structure DB migrations that occur. Will perform migrations during SDK setup if any are outstanding. Converted existing DB schema to be initialized using migrations.
- Update
- Fixes
- Fixed the public
addPersona(persona: String, lifespan: MetadataLifespan)method which wasn't properly forwarding thelifespan - Fixed a bug that caused a reentrancy issue with the database when persisting spans.
- Fixed the public
July 30th, 2024
Features
- Adds
PushNotificationCaptureServiceto instrument notifications received using Apple'sUserNotificationsframework - Adds
Embrace.lastRunEndStatemethod to retrieve an indication of how the previous start of the SDK finished- Provided values can be
unavailable,crash, andcleanExit`
- Provided values can be
- Adds
CaptureServiceBuilderto provide easier interface to setup/configureCaptureServiceinstances - Adds
Embrace.tracer(instrumentationName: String)method to retrieve OpenTelemetryTracer- This is useful for manual instrumentation using the
OpenTelemetryApidirectly
- This is useful for manual instrumentation using the
- Adds ability to set "User Personas" in the
MetadataHandler- User Personas are great ways to tag users and identify commonalities
- See
MetadataHandler+Personasfor interface definition
** Changes **
- Updates
TapCaptureServicewith options to better control data capture- Allows you to ignore specific views by class, or to prevent coordinate capture
- Optional
TapCaptureServiceDelegateto have fine grained control over tap capture
** Fixes **
- Fixes bug that prevented user properties from being included on an Embrace session
- Cleanup of public interface and code level documentation
Bug fixes
- Bumps version in EmbraceMeta.swift
July 3rd, 2024
Features
- Updates license to Apache 2.0
- Adds
flush(_ span: Span)method to manually write span data to disk - Adds
WebViewCaptureServiceto instrumentWKWebViewinteractions - Adds
EmbraceCrashlyticsSupporttarget to read Crashlytics crash reports - Adds "Internal Log" functionality to allow for logs to be created to observe SDK behavior/health
- Will have attribute
emb.type = sys.internalto differentiate from user logs (emb.type = sys.log)
- Will have attribute
** Changes **
- Updates upload of spans to the
v2/spansendpoint - Adds migration functionality to
EmbraceStoragetarget- Updates SpanRecord table with
process_identifierto better help Span recovery and recording of spans during SDK setup
- Updates SpanRecord table with
- Creates CODE_OF_CONDUCT.md
Bug fixes
- Fixes
URLSessionDelegateProxybehavior when callingURLSessionDelegatemethods- Issue occurred when deciding when to call
task.delegatevs.session.delegate
- Issue occurred when deciding when to call
April 22nd, 2024
Features
- 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
CaptureServicesubclasses