Skip to content

Releases: bugsnag/bugsnag-cocoa

v6.1.5

23 Sep 13:22
fbf9408
Compare
Choose a tag to compare

Enhancements

  • Add +[Bugsnag breadcrumbs] to allow apps to fetch the list of breadcrumbs.
    813

  • Disable JSON pretty-printing in KSCrash reports to save disk space and bandwidth.
    802

Bug fixes

  • Fix reporting of Mach exception code and subcode.
    806

  • Create date formatters at init time to avoid potential race conditions.
    807

  • Refactor OOM handler to be less suceptible to data loss on crash.
    804

v6.1.4

14 Sep 10:02
c4453b4
Compare
Choose a tag to compare

Bug fixes

  • Copy the metadata observer list rather than mutating it directly.
    796

  • Reorganized the project file
    793

  • Removed some magic values and used the const string references instead.
    #792

  • Added BSGJSONSerializer, which ensures no exceptions get thrown (NSErrors get returned instead)
    791

  • Guard against non-string metadata map keys
    #790

  • Quiet some Analyzer false positives
    #789

  • Avoid crash reporting OOMs if nil provided as codeBundleId
    #784

v6.1.3

17 Aug 13:55
75ac232
Compare
Choose a tag to compare

Bug fixes

  • Persist user when set on client
    #770

  • Avoid sharing global crash context when recording thread information for handled errors
    #766

  • Respect bundle version set from config
    #762

  • (React Native) Call react native observer with initial user/context values
    #768

  • (React Native) Populate app/device metadata fields for RN errors
    #763

v5.23.5

27 Jul 13:24
c64b617
Compare
Choose a tag to compare

Bug fixes

The following bug fixes have been applied to the v5 branch to provide a patch
for users who have not yet upgraded to v6:

  • Fix JSON serialisation of strings with control characters
    739

  • Removed non-thread safe date formatter
    #758

v6.1.2

21 Jul 13:37
9166ac7
Compare
Choose a tag to compare

Bug fixes

  • Ensure foreground stats are recorded for handled errors
    #755

  • Synchronize access to sessions being delivered in de-duplication code
    #756

  • Removed non-thread safe date formatter
    #758

v6.1.1

16 Jul 09:05
9251dc0
Compare
Choose a tag to compare

Bug fixes

  • Improve performance of thread capture
    #723
    #727
    #728

  • Improve thread-safety of breadcrumb count
    #743

  • Fix JSON serialisation of strings with control characters
    #739

  • Disable reporting of notable addresses from registers for handled errors
    #741

v6.1.0

06 Jul 13:16
54a6119
Compare
Choose a tag to compare

Enhancements

  • Add support for Swift Package Manager
    #729

v5.23.4

06 Jul 09:01
c37bf52
Compare
Choose a tag to compare

Bug Fixes

The following bug fixes have been applied to the v5 branch to provide a patch
for users who have not yet upgraded to v6:

  • Fix incorrect string comparison of thread names in Mach exception handling
    #721

  • Move binary images store declaration from header file
    #725

  • Avoid dereference null pointer in JSON serialisation
    #637
    Naugladur

v6.0.1

29 Jun 16:21
17f46cb
Compare
Choose a tag to compare

Bug Fixes

  • Move binary images store declaration from header file
    #725

  • Make stacktrace properties for error/thread readwrite
    #722

  • Fix incorrect string comparison of thread names in Mach exception handling
    #721

  • Address unterminated string in thread gathering logic
    #720

v6.0.0

22 Jun 14:53
3ff8709
Compare
Choose a tag to compare

This version contains many breaking changes. It is part of an effort to unify our notifier
libraries across platforms, making the user interface more consistent, and implementations better
on multi-layered environments where multiple Bugsnag libraries need to work together
(such as React Native).

Please see the upgrade guide for details of all the changes and instructions on
how to upgrade.

Enhancements

  • Allow starting Bugsnag from PList
    #676

  • The comparison of redacted keys is now case-insensitive
    #653

  • Unified the three main XCode projects
    #633

  • Alter default session background timeout to 30s
    #581

  • Support loading configuration from values in Info.plist.
    #582

  • Add unhandledRejections to BugsnagErrorTypes
    #567

  • Rename Bugsnag start methods
    #566

  • Rename OnSend to OnSendError
    #562

  • Add onCrashHandler data to BugsnagEvent metadata
    #564

  • Rename BugsnagUser properties
    #560

  • Make BugsnagOnErrorBlock return BOOL rather than void
    #555

  • Make BugsnagPlugin take BugsnagClient as param
    #558

  • Make user editable on BugsnagEvent
    #557

  • Add getter for Bugsnag.context
    #554

  • Make BugsnagUser properties readonly
    #556

  • Add sendThreads property to BugsnagConfiguration
    #549

  • Hide additional methods from public API
    #552

  • Move codeBundleId from configuration to non-public client property
    #548

  • Add structured app/device fields to BugsnagSession
    #546

  • Add redactedKeys for removing sensitive values from metadata
    #540

  • Move endpoint configuration to class
    #542

  • Make all callbacks return boolean values
    #534

  • Add originalError property to BugsnagEvent
    #541

  • Remove attachCustomStacktrace from public API
    #547

  • Create structured BugsnagError class
    #533

  • Create structured BugsnagThread class
    #532

  • Convert event.device from NSDictionary to a structured class
    #526

  • Create structured BugsnagStackframe class
    #528

  • Convert event.app from NSDictionary to a structured class
    #520
    #600

  • Make BugsnagClient a public interface
    #517

  • Remove unused APIs from Bugsnag interface
    #514

  • Enforce that config.maxBreadcrumbs must be between 0-100
    #511

  • Add unhandled property to BugsnagEvent
    #512

  • Rename notifyReleaseStages to enabledReleaseStages
    #509

  • Remove unused APIs from BugsnagSession interface
    #506

  • Rename setUser/user interface on Bugsnag and BugsnagConfiguration
    #505

  • Rename config.notifierType to config.appType
    #504

  • Remove unused APIs on BugsnagEvent interface
    #498

  • Allow addition/removal of OnBreadcrumb callbacks
    #508

  • Remove unused APIs from BugsnagMetadata interface
    #501

  • Remove unused APIs from BugsnagConfiguration interface
    #496

  • Remove unused APIs from BugsnagBreadcrumb interface
    #502

  • Remove notify method variants from public api on Bugsnag
    #497

  • Remove leaveBreadcrumbWithBlock from public api on Bugsnag
    #491

  • BugsnagNotifier is now BugsnagClient
    #480

  • Remove setSuspendThreadsForUserReported, setReportWhenDebuggerIsAttached, setThreadTracingEnabled, setWriteBinaryImagesForUserReported from public API.
    #468

  • Fixes typo in BSG_KSCDeleteOnSuccess enumeration
    #317

  • Add a breadcrumb when Bugsnag first starts with the message "Bugsnag loaded"
    #445

  • BugsnagMetaData is now BugsnagMetadata, including the configuration and event fields
    #450

  • BugsnagCrashReport is now BugsnagEvent
    #449

  • Add a configuration option to filter breadcrumbs by type. Use
    config.enabledBreadcrumbTypes to enable or disable particular types of
    breadcrumbs from being captured.
    #476

  • Added a designated initializer to BugsnagConfiguration and removed functionality
    from the default convenience init() to ensure that apiKey has a value set. The apiKey
    must now be a correctly formatted one to be accepted.

    • Swift: BugsnagConfiguration(_ apiKey)
    • Objective C: [[BugsnagConfiguration alloc] initWithApiKey:]

    #446
    #492

  • Support editing breadcrumbs within an Event as objects. Breadcrumbs can now be
    inspected and modified from callbacks, for example:

    Bugsnag.notifyError(error) { event in
        event.breadcrumbs?.forEach({ crumb in
            if crumb.message == "something specific" {
                crumb.message = "[redacted]"
            }
        })
    }

    #474

  • Bugsnag.addAttribute:value:tab: is now Bugsnag.addMetadataToSection:key:value:
    #454

  • [Bugsnag clearTab:] is now [Bugsnag clearMetadataInSection:]
    (Swift: Bugsnag.clearMetadata(section:))
    #457

  • Renamed callback functions in the Configuration class:

    • beforeSendBlocks is now onSendBlocks (add using config.add(onSend: { ... }))
    • beforeSendSessionBlocks is now onSessionBlocks (add using config.add(onSession: { ... }))
  • Added [Bugsnag clearMetadataInSection:withKey:]
    (Swift: Bugsnag.clearMetadata(section:key:))
    #462

  • Added Bugsnag.getMetadata(_ section). The behaviour is: calling with a valid section
    name will return the metadata for that section if it exists, or nil if it does not exist. Other,
    similar functionality (e.g. BugsnagConfiguration.getTab() has been renamed and
    had usage aligned with this change.
    #459

  • Added Bugsnag.getMetadata(_ section: key:)
    #463

  • Add a per-Event apiKey property. This defaults to the global
    BugsnagConfiguration value but can be overridden in event passed to the
    Bugsnag.notify() callback.
    #458

  • Added Bugsnag.context, replicating the BugsnagConfiguration property. This is
    mutable and may be changed at any point. Changes are propagated to the BugsnagConfiguration
    property.
    #466

  • Bugsnag.stopSession() is now Bugsnag.pauseSession(). This renaming has
    also been applied to the BugsnagNotifier and BugsnagSessionTracker classes.
    #464

  • Add a breadcrumb when network connectivity changes
    #448

  • Breadcrumbs now take a message parameter that can now be arbitrarily long. This simplifies breadcrumb
    creation using Bugsnag.leaveBreadcrumb(string) so that the value is
    prominently displayed and is not truncated.
    #433

  • Add metadata accessor methods to BugsnagEvent
    ...

Read more