Release notes
Release history for Bugsee iOS SDK 7.x. Looking for the previous major version? See the 6.x release notes. See the migration guide when planning your upgrade from 6.x.
7.0.1 (November 3 2026)
iOS SDK
Fixes
- Fix: A crash or app-exit report recovered at the next launch now starts where the run's recording began, and no traces are lost. The last second before the crash, including the tap that caused it, is no longer cut off.
- Fix: Internal improvements.
BugseeFeedback module
- No API or behavior changes.
7.0.0 (October 30 2026)
The first stable release of the 7.x line. Coming from 6.x, follow the migration guide: the minimum deployment target is iOS 15, the option keys and many methods changed, and feedback moved to its own package. The notes below list what changed since 7.0.0-beta7.
iOS SDK
Breaking changes
- The interface for Bugsee's cross-platform wrappers and add-on modules moved to the
Bugsee.SPIsubmodule, whichimport Bugseedoes not include:setWrapper:,registerExt:,BugseeCommunicationManager,BGSOptionsContainerand theBGSLifecycleEvent*names. App code keepsBugsee.ext(_:). Headers that were never app API, such asBGSContracts.h, and the unprefixed protocol and type aliases they declared, are no longer public.BGSAppearanceis removed (use+[Bugsee getAppearance]). BugseeOptionConfigMaxDataSizenow limits the disk space taken by reports waiting to be sent, and its default rises from 50 to 150 MB. Past the limit the oldest reports are deleted whole: errors first, then bug reports, then crashes. The newest crash is always kept.
New features
- Feat: Crash Report Extension (iOS 27 and later). A Crash Reporter Extension built on the new
BugseeCrashExtensionlibrary reports the terminations no in-process handler survives, such as the launch watchdog and memory-limit kills, with the stack of every thread. See Crash Report Extension. - Feat: Report handler.
+[Bugsee setReportHandler:]takes aBugseeReportHandlerwhoseonBeforeReportCreatedandonAfterReportCreatedcallbacks receive every report as a liveBugseeReport, including crashes recovered at launch. In Swift, either callback can be anasyncmethod.BugseeReportisSendable. See Report handler. - Feat:
deleteCollectedDataOnDevice(includingIntermediate:includingBundles:completion:)also deletes the reports waiting for upload. A report being uploaded at that moment is kept, and the completion receivesNO. - Feat: Pending-report limits.
BugseeOptionConfigMaxPendingReports(30) andBugseeOptionConfigMaxPendingReportAge(30 days), also themaxPendingReportsandmaxPendingReportAgeproperties, cap how many reports wait to be sent and for how long. - Feat:
Bugsee.defaultNetworkSanitizeris the built-in network redaction. A network filter, which turns the built-in redaction off, can callBugsee.defaultNetworkSanitizer.sanitize(event)to keep it. See Network privacy. - Feat:
addBreadcrumb(_:requiresFiltering:)records a breadcrumb without running it through the breadcrumb filter, for a breadcrumb you have already filtered.
Changes
- Change: The log, network and breadcrumb filters must call their decision block within 10 seconds. Past that the event is dropped, and a later call is ignored.
- Change:
stopends an active blackout.BugseeLifecycleEventBlackoutEndedis dispatched before the stop completes, and the next launch starts without a blackout. A relaunch keeps it, and a blackout started before launch still applies to that launch. - Change: A launch whose capture fails to start now completes
started:withNOand returns the SDK to stopped; before, it reported success. Astopwhile the SDK is launching also completes that launch withNO. Every launch and relaunch completion runs exactly once. - Change:
relaunchfollows the SDK lifecycle: it is refused, and its completion receivesNO, when the SDK is not launched or is launching or stopping; a refused call completes at once, on the calling thread. A second relaunch joins the one in progress, and astopduring a relaunch cancels it. - Change: The bluetooth trace follows the system's state changes as they happen, instead of sampling the state once a second.
Fixes
- Fix: A crash file that cannot be read is dropped. Before, it was filed as an empty crash report.
- Fix: The user identifier is kept when the Keychain rejects it, as on an unsigned simulator
build. Before,
getUserIdentifierreturned nothing. - Fix: Reports still waiting for upload that a 7.0.0 beta bundled are deleted instead of uploaded. Up to 7.0.0-beta4, such a report could hold the SDK's own session request.
- Fix: Every video frame fills the exported movie. Before, a frame smaller than the largest one in the session, such as the iPhone Duo cover display, was drawn at its own size with black margins.
- Fix: The mask of a secure view or rectangle disappears from the video as soon as the view or rectangle is removed, also while adaptive capture idles.
BugseeFeedback module
- Fix:
setListenerchanges are applied in the order they are made. - Note: as with every release,
BugseeFeedback7.0.0 requires the core SDK 7.0.0 exactly. Add both packages at the same exact version, and change both together.
7.0.0-beta7 (October 18 2026)
iOS SDK
Breaking changes
crashHandlerTypereplacesenableMachExceptions. SetBugseeOptions.crashHandlerType(BugseeOptionCaptureCrashHandlerType) to aBugseeCrashHandlerType:BSD,MachorMachAndBSD(Swift.bsd,.mach,.machAndBSD). The default isMachAndBSD.BugseeOptions.enableMachExceptions,BugseeOptionCaptureMachExceptionsandBugseeEnableMachExceptionsKeyare removed. The old keys passed as strings are ignored, and Bugsee logs a warning to the console: if your app turned Mach exceptions off, setcrashHandlerTypetoBSDto keep it that way. tvOS always uses BSD signal handlers.logExceptiontakes the domain and the number of frames to skip as parameters:logException(exception:domain:skipFrames:completion:)andlogException(name:reason:domain:skipFrames:completion:), plus shorter forms without them.BugseeExceptionLoggingOptionsandBugseeMergingRulesSkipFramesKeyare removed, andincludeVideohas no replacement.logError:labels:is removed, andlogExceptionno longer takes labels. Add labels to the report inbugseeAttachmentsForReport:, which receives every report.killDetection,BugseeOptionDetectAndReportKillandBugseeKillDetectionKeyare removed. The option had no effect in 7.x. Out-of-memory kills are still reported throughBugseeOptionDetectAndReportExit, which is on by default.
New features
- Feat: Hybrid crash handler. The default
MachAndBSDcatches both hardware faults and fatal signals raised by software, such as a Unity fatal error. Before, with Mach exceptions on, a signal raised by software was not reported unless it wasSIGABRT. - Feat:
crashSignals(BugseeOptionCaptureCrashSignals) chooses which fatal signals Bugsee intercepts:SIGABRT,SIGSEGV,SIGBUS,SIGILL,SIGFPEandSIGTRAP. CombineBugseeCrashSignalsvalues (Swift.abrt,.segv,.bus,.ill,.fpe,.trap). By default every signal is intercepted, except that the Xamarin and .NET SDKs leave outSIGSEGVandSIGBUS, which the .NET runtime handles itself. Leaving outSIGABRTalso stops uncaught Objective-C exceptions from being reported. - Feat:
deleteCollectedDataOnDevice(completion:)deletes everything Bugsee has collected on the device: the recording, reports not uploaded yet (their uploads are cancelled), crashes not reported yet and the performance baselines learned by anomaly detection. As with the other form, callstopfirst.
Fixes
- Fix:
logException,logErroranduploadWithSummarycalled right afterlaunch, before recording has started, now file the report, without video or logs. Before, the call was dropped silently. A call made while the SDK is not launched is now logged as ignored. - Fix:
logExceptionandlogUnhandledExceptioncall their completion on the simulator and on Mac Catalyst. Before, the completion was never called there. Nothing is filed on these platforms, and Bugsee logs a line that says so. - Fix: A report filed with
uploadWithSummaryis marked as sent from code. Before, its source was unknown. - Fix:
deleteCollectedDataOnDevice(includingIntermediate:completion:)calls its completion withNOwhen the SDK is not stopped. Before, the completion was never called. A launch called while a deletion runs, with either form, starts once the deletion has finished. - Fix:
BugseeOptionCaptureNetworkBodyWithoutTypeset toNO(the default) now leaves out a request or response body that has noContent-Typeheader. Before, the body was captured. WebSocket frames are kept. - Fix:
captureLogsset toNOnow also stops recording CocoaLumberjack logs and the console output forwarded by the React Native, Flutter and Unity SDKs. Lines sent withBugsee.logare always recorded. - Fix: A report from
createReportkeeps its own attributes. Before, creating a second report cleared the attributes of the first.isScreenshotChangedis set only when an existing screenshot is replaced or removed, and changing a report's attributes from several threads no longer crashes. - Fix (Unity): The app no longer crashes a few seconds after launch while Bugsee records the Unity view.
BugseeFeedback module
- No API or behavior changes.
7.0.0-beta6 (October 12 2026)
iOS SDK
New features
- Feat: The report handler (
onBeforeReportCreated/onAfterReportCreated) can edit a crash recovered on the next launch, however long it takes to call its completion, within the handler window. Before, an edit made a few milliseconds after the handler was called, such as labels set from async work, was missing from the recovered report.
Fixes
- Fix:
BugseeOptionCaptureVideoset toNOnow records no video and no touches. The report screenshot no longer follows it: turn the screenshot off withscreenshotEnabled = NO. - Fix:
BugseeOptionCaptureNetworkBodySizeLimitis applied at any value. Before, a value under 20480 bytes was raised to 20480. A body over the limit is skipped whole withSizeTooLargeinstead of being cut, a limit of0captures no bodies, and WebSocket frames of exactly the limit are kept. - Fix:
BugseeOptionCaptureBluetoothStatusset toNO(the default) now records no bluetooth trace, and Bugsee no longer creates a Bluetooth central manager in that case. - Fix:
BugseeOptionDetectAndReportEarlyCrashset toNOnow turns the early-crash protection off. Before, it was read by nothing. - Fix: A recovered crash, an app-exit report and an unhandled exception reported by a wrapper take the crash priority of the run that crashed, not the priority of the launch that recovered them.
- Fix:
deleteCollectedDataOnDevicenow deletes the captured data of the 7.x SDK. Before, it reported success without deleting it, and its completion always reported success. The completion now reports whether the deletion succeeded. - Fix:
setNameon a performance transaction sets its operation, as it does on a span. It does nothing once the transaction has finished.
Changes
- Change:
reportCloseButtonColorandreportSendButtonColorare deprecated. The report screen uses the system Cancel and Done buttons, so they have no effect.
Build and distribution
- The SDK version is stamped into the XCFramework's
Info.plist. PrivateHeadersare no longer shipped in the XCFramework.- The direct-download zip includes the
Toolsscripts.
BugseeFeedback module
- Feat: On first open, the feedback screen asks for an e-mail address ("Get notified by
email when the reply is available") before the chat, as on Android. Continue saves
it, Skip settles the screen without one, and closing it with the cross asks again next
time. A user identifier containing
@spares the screen. ThefeedbackEmail*theme keys now apply to it. - Fix: The feedback chat is painted with the theme's background color.
- Change: The module requires iOS 15 or later, matching the SDK. The UIKit chat for iOS 13 and 14 is removed.
7.0.0-beta5 (October 7 2026)
iOS SDK
Fixes
- Fix: The Bugsee SDK's own requests no longer show up in your reports (network capture and APM).
- Fix: A crash on the first launch after an install or an app update, before the app became active, is now reported. So are some crashes shortly after launch that were lost before.
BugseeFeedback module
- No API or behavior changes.
7.0.0-beta4 (October 6 2026)
iOS SDK
New features
- Feat: iPhone Duo support:
- the recording follows the app between the cover and the inner display as the device is folded and unfolded;
- fold traces record the posture and hinge angle (iOS 27.1 and later);
- display traces list every screen.
- Feat: Multi-window recording. On iPad (Split View, Stage Manager) and iPhone Duo, every window of the app on the screen is recorded.
Fixes
- Fix: Attributes, the user identifier and the default severity now reach reports. Before, crash and error reports had no severity.
- Fix (security): The internal log attached to each report no longer contains Bugsee's tokens or the full URL of some of your app's requests.
- Fix: The video now follows window and screen size changes during a session, such as an iPad window being resized.
- Fix: In a landscape app, device info now reports the screen's pixel size in portrait, as it does for points.
- Fix (React Native, Flutter, Unity): An unhandled exception reported by the wrapper is now the crash report, instead of the native crash that followed it.
BugseeFeedback module
- No API or behavior changes.
7.0.0-beta3 (September 28 2026)
iOS SDK
Breaking changes
- Mach exceptions are caught by default:
BugseeOptionCaptureMachExceptionsis nowYESon iOS and visionOS. Set it toNOto keep BSD signal handlers. tvOS always uses BSD signal handlers. log:level:enforceFiltering:is renamedlog:level:requiresFiltering:.BugseeReport:typeis read-only,labelsis no longer nullable, and there is no public initializer.- A severity outside 1–5 is ignored, on the report, in
BugseeReportFieldsand in the default priority options.
New features
- Feat: Change the report before it is sent. In
bugseeAttachmentsForReport:, theBugseeReportlets you change the summary, description, email, severity, attributes, labels and attachments, as on Android. - Feat: Mouse input. Mouse buttons, modifier keys and scrolling are recorded with touches.
- Feat: Wrapper SDK support: the React Native, Flutter and Unity SDKs can record their own logs and network events and change reports. Apps using the iOS SDK directly see no change.
Fixes
- Fix: A log filter that throws an exception is now reported once in the SDK's internal log instead of failing silently.
BugseeFeedback module
- No API or behavior changes.
7.0.0-beta2 (September 18 2026)
iOS SDK
Requirements
- The minimum deployment target moves from iOS 13 to iOS 15, and from tvOS 13 to tvOS 15. Xcode 27 no longer builds for anything older. visionOS 1 is unchanged.
- Swift Package Manager is the only distribution channel for 7.x. CocoaPods and Carthage
are retired. A manual
Bugsee.xcframework.zipdownload remains available.
Breaking changes
- Rectangles added with
addSecureRectangle:now hide touches as well as pixels, the same way secure views already did. - The React Native log hook (
BugseeReactNativeLoggerandBugseeLogger.reactNativeLogger) is removed from the core framework. The React Native 7.x SDK installs its own hook, so no app code is needed.
New features
- Feat:
getHostLaunchOptionsreturns the launch options your app supplied, as the SDK accepted them. Together withgetLaunchOptionsthis matches Android. - Feat: Lifecycle events. The delegate now receives
RelaunchedAfterCrash,BeforeReportAssembled,AfterReportAssembled,ReportAssemblyFailed,BeforeReportUploaded,AfterReportUploaded,ReportUploadFailedWithFutureRetryandReportUploadFailed. None of them were emitted in beta1. - Feat: Wrapper SDK support for React Native, Flutter and Unity: the wrapper can contribute its own view hierarchy and secure rectangles, receive lifecycle events, and adjust a report before it is assembled. Apps using the iOS SDK directly see no change.
Fixes
- Fix: With
BugseeOptionCaptureBreadcrumbsenabled, astoporrelaunchthat landed while capture was still starting could deadlock the main thread, and thestarted:callback was never called. - Fix: Crash reports whose instruction window could not be captured now still carry the crashing address and the CPU architecture.
- Fix:
setWrapper:now populates the wrapper information attached to each session. Previously only thewrapper_infolaunch option did.
BugseeFeedback module
New features
- Feat: The
BugseeFeedbackpackage is published for the beta. Addhttps://github.com/bugsee/feedback-spmat7.0.0-beta2; it depends on the matching core version, iOS 15 or later.
Fixes
- Fix: Stopping the SDK now stops the chat's polling and outgoing requests, a stop during an in-flight send no longer delivers the same message twice, and the SwiftUI chat can dismiss the keyboard.
7.0.0-beta1 (September 15 2026)
First beta of the 7.x line. See the migration guide for the full list of API changes and the order to apply them in.
iOS SDK
Requirements
- The minimum deployment target moves from iOS 12 to iOS 13.
- tvOS 13 and visionOS 1 are now supported.
Breaking changes
- Every option constant is renamed into the
BugseeOption*family, grouped by area:BugseeOptionDetect*,BugseeOptionCapture*,BugseeOptionReporting*,BugseeOptionConfig*,BugseeOptionPerformance*. Launch options passed as hard-coded strings rather than constants are no longer recognized and fall back to the defaults. - Feedback is no longer part of the core framework.
showFeedbackController,setDefaultFeedbackGreeting:and thebugsee:didReceiveNewFeedback:delegate method are removed. See theBugseeFeedbackmodule below. pauseandresumeare removed.- Renamed:
showReportController*toshowReportDialog*,setView:asHidden:toaddSecureView:/removeSecureView:,addSecureRect:and friends toaddSecureRectangle:,registerEvent:toevent:,traceKey:withValue:totrace:value:,registerNetworkEvent:toaddNetworkEvent:,setEmail:tosetUserIdentifier:,appearancetogetAppearance,activeSpantogetActiveSpan, andtestExceptionCrash/testSignalCrashtotestCrash. - Removed with no replacement:
getDeviceId,accessToken,isViewHidden:,hideKeyboard:,logAssert:withLocation:, thesetDefault*Priority:setters (use the matching launch options) and theincludeVideo:overloads ofuploadWithSummary:andlogError:.
New features
- Feat: Breadcrumbs. The SDK collects them automatically once
BugseeOptionCaptureBreadcrumbsis enabled, andBugsee.addBreadcrumbrecords your own.setBreadcrumbFilter:redacts or drops them. - Feat: Blackout.
startBlackout/endBlackoutsuppress everything that describes the screen — video, the report screenshot, touches and the view hierarchy — while logs, network events and traces keep being captured. - Feat: Notification relay gains an
urgent:overload, which skips ahead of the queue and posts that one notification right away when the network is available, andBugseeOptionConfigNotifyFlushDelay, which sets how long to wait before flushing the queue (default0; 6.x always waited one second).Bugsee.notifyitself shipped in 6.3.0. - Feat: New issue detection — hangs, HTTP errors, main-thread misuse, anomalies and
frustration, each behind its own
BugseeOptionDetect*option. - Feat: User identity.
setUserIdentifier:/getUserIdentifier/clearUserIdentifierrecord an arbitrary identifier in place of 6.x's email-only API, andgetAllAttributesreturns every attribute currently set. - Feat:
setLogEventFilter:filters console logs with a block, alongside the existing delegate hook. - Feat: SDK status. A
statusproperty and thebugseeDidChangeStatus:delegate method report theLaunchingandStoppingsteps that no lifecycle event covers. - Feat: New capture options — video quality and privacy blur, screenshot scale, network
interception installed during launch, camera preview and
AVSampleBufferDisplayLayer. - Feat:
relaunchrestarts with the current app token and default options. - Feat: An extension registry (
registerExt:/ext:) for optional modules. Feedback is the first to use it.
BugseeFeedback module
New features
- Feat: Feedback ships as a separate Swift package,
BugseeFeedback, layered on the core SDK and reached throughBugseeFeedback.shared.showFeedbackUIreplacesshowFeedbackController,setGreeting:replacessetDefaultFeedbackGreeting:, and aBugseeFeedbackListenerset withsetListener:receivesonNewMessagesReceived:and the newonNewMessageSent:. The package registers itself with the SDK through the extension registry.