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
WebViewCaptureService
that could lead to a crash. - Fixed issue with the
URLSessionCaptureService
when dealing withURLSessionDelegate
objects in Objective-C responding to methods without conforming to specific protocols.
Nov 14th, 2024
- Features
EmbraceCrashReporter
now receives a list of signals to be ignored.SIGTERM
is ignored by default now.
- Fixes
- Fixed network payload capture rules not working.
- Fixed
WebViewCaptureService
preventing the web view delegate from receiving messages. - Fixed
PushNotificationCaptureService
preventing 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
SwiftLint
fromPackage.swift
as a dependency, which reduces the download size of our SDK and prevents dependency resolution conflicts. - For those consuming the SDK without an
appId
,Embrace.Options
now 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.Status
to 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-fetcher
library. - Fixed KSCrash dependency compilation issues in Xcode 16.
Sep 13th, 2024
- Features
- Added the option to use the SDK without an
appId
usingEmbrace.Options
. - Introduced a new parameter in the
log
API:stackTraceBehavior
to 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
-dynamic
targets from Swift Package Manager. - Discontinued capturing the screen resolution of devices.
- Removed
- Fixes
- Updated
GRDB
to 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
URLSession
due to a retention issue. - Corrected the public API
recordCompletedSpan
to setSpan.Status
consistently with otherend
methods.
- Updated
Aug 7th, 2024
- Features
- Added new public target:
EmbraceSemantics
to expose constants and attributes used to extend OTel Semantic Conventions - Added Cocoapods support
- Added logic to link an emitted
LogRecord
to the active span context - Created new APIs for
W3C.traceparent
to be used to support manually instrumented network requests
- Added new public target:
- Changes
- Update
Embrace
to exposeLogType
on thelog
method - Renamed
LogType.default
toLogType.message
- Adds
MigrationService
inEmbraceStorage
target 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
PushNotificationCaptureService
to instrument notifications received using Apple'sUserNotifications
framework - Adds
Embrace.lastRunEndState
method to retrieve an indication of how the previous start of the SDK finished- Provided values can be
unavailable,
crash, and
cleanExit`
- Provided values can be
- Adds
CaptureServiceBuilder
to provide easier interface to setup/configureCaptureService
instances - Adds
Embrace.tracer(instrumentationName: String)
method to retrieve OpenTelemetryTracer
- This is useful for manual instrumentation using the
OpenTelemetryApi
directly
- 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+Personas
for interface definition
** Changes **
- Updates
TapCaptureService
with options to better control data capture- Allows you to ignore specific views by class, or to prevent coordinate capture
- Optional
TapCaptureServiceDelegate
to 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
WebViewCaptureService
to instrumentWKWebView
interactions - Adds
EmbraceCrashlyticsSupport
target 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.internal
to differentiate from user logs (emb.type = sys.log
)
- Will have attribute
** Changes **
- Updates upload of spans to the
v2/spans
endpoint - Adds migration functionality to
EmbraceStorage
target- Updates SpanRecord table with
process_identifier
to better help Span recovery and recording of spans during SDK setup
- Updates SpanRecord table with
- Creates CODE_OF_CONDUCT.md
Bug fixes
- Fixes
URLSessionDelegateProxy
behavior when callingURLSessionDelegate
methods- Issue occurred when deciding when to call
task.delegate
vs.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
CaptureService
subclasses