Fixes
- Fix a data race on the span end timestamp that could crash in
SentryTracer.trimEndTimestampwhen a child span finishes on another thread while its transaction finishes (#9305) - Validate feedback payloads before transport and align the managed form's message counter and errors with the cross-SDK input validation specification (#8973)
- Read the initial
UIApplication.applicationStateasynchronously on the main queue when the SDK's dependency container is first accessed off the main thread, instead of blocking the calling thread while waiting for the main thread during app launch (#9304) - Prevent crash report buffer overflows when flushing pending data fails (#9317)
- Exempt symbol images from Session Replay masking using the public
isSymbolImageAPI without inspecting their image assets (#9335) - Fix an
EXC_BAD_ACCESScrash while reading the cellular network technology on iOS. The SDK now copies the value from CoreTelephony under the lock that CoreTelephony uses to change it (#9332) - Avoid crash-handler deadlocks caused by SDK debug logging or NSException backtrace memory management while other threads are suspended (#9324)
- Prepare NSException backtraces before suspending other threads, and resume them before releasing the backtrace buffer.
- NSException-monitor debug and warning diagnostics now use the async-safe logger's compile-time threshold (
ERRORby default), so runtime debug options no longer enable them.
- Prevent Session Replay image redaction from changing archived images' rendered size while preserving masking exemptions for bundled images and system symbols (#9344)
- Fix an
EXC_BAD_ACCESScrash incow_cleanupwhen aURLSessionTaskchanges state while another thread writes protocol properties into its request. The network tracker now reads the task's requests without copying them to SwiftURLRequestvalues (#9343) - Prevent crash report buffer overflows and file descriptor leaks when the report writer receives file descriptor zero (#9341)