Skip to content

0.4.0

Latest

Choose a tag to compare

@ivnbogdan ivnbogdan released this 23 Oct 08:24

feat: error reporting #39

  • Adds Aptabase.shared.trackError(error) and trackError(error, fatal: true). Reports include the error type, message, stack trace, severity and how the error was captured, and appear on the Errors page of your dashboard. Error reporting is in beta.
  • Reports are sent immediately and retried on network failures. Errors count against a separate monthly error quota.
  • Uncaught exceptions and crashes are not reported automatically yet. Call trackError from your own error handling.
do {
    try someFailingFunction()
} catch {
    Aptabase.shared.trackError(error)              // severity: error
}

Aptabase.shared.trackError(error, fatal: true)     // severity: fatal

fixes

  • Fix a crash in ConcurrentQueue (Array replace: subrange extends past the end) when two flushes overlapped, for example the timer flush and an app lifecycle flush #38
  • EventDispatcher is now an actor, preventing concurrent mutation of the event queue (fixes #23 and #25) #33
  • Adds an async variant of Aptabase.shared.flush() that returns after the events have been sent (fixes #29) #31
  • Event delivery now starts at initialization, so macOS File Provider extensions and clients initialized after app activation no longer queue events indefinitely while waiting for a foreground notification #40
  • Builds on Xcode 16 again #41
  • CI runs on macos-15 with Xcode 16

Thanks to @The-Wolfson, @aswyer, @Kevin-4Spaces and @mrosberghaus for the contributions.