Skip to content

Releases: kstenerud/KSCrash

2.5.0

20 Nov 17:17

Choose a tag to compare

What's Changed

  • Fix outdated headerdoc reference in KSCrashInstallation by @alanzeino in #710
  • Enable module definition in KSCrash podspec by @maxep in #714
  • Fix watchOS Compilation Errors by @maxep in #715
  • Fix arm64e build by @maxep in #716

New Contributors

Full Changelog: 2.4.0...2.5.0

2.4.0

29 Sep 21:13

Choose a tag to compare

What's Changed

  • Make monitor API functions properly idempotent using atomics by @kstenerud in #661
  • Add binary architecture field to system info by @DariaKunoichi in #669
  • Add improved jailbreak detection logic by @DariaKunoichi in #666
  • Add clang_version, device free storage size and rosetta check fields to system info by @DariaKunoichi in #668
  • Convert KSCrashMonitor to use a lockless algorithm by @kstenerud in #662
  • Moved monitor context management into KSCrashMonitor. by @kstenerud in #674
  • Restore recrash support to the mach exception handler by @kstenerud in #675
  • Added a policy argument to all callbacks so that callback implementations can more intelligently decide what to do. by @kstenerud in #676
  • KSFileUtils won't compile standalone without stddef.h by @kstenerud in #685
  • [KSCRASH] Allow Cancelling Processing/Writting a Crash by @naftaly in #680
  • [KSCRASH] Add Observers to Memory Tracker by @naftaly in #681
  • [KSCRASH] Make CPP Monitor more precise by @naftaly in #682
  • [EASY] Add back start/stop for backwards compat by @naftaly in #686
  • Fix incorrectly defined KSCRASH_NAMESPACE_STRING by @kstenerud in #687
  • Pin Tuist version using Mise for consistent environments by @GLinnik21 in #688
  • Clean up pragma and example app warnings by @kstenerud in #689
  • Fix same self thread backtrace by @naftaly in #690
  • [2.x] Add backward compatibility for callback API changes by @GLinnik21 in #684
  • Modify KSCrashEventNotifyCallback to return a user-supplied policy by @kstenerud in #692
  • We should still attempt to record threads even if we can't suspend them. by @kstenerud in #693
  • Add GitHub Copilot code review instructions for API breaking changes by @GLinnik21 in #695
  • Expose an intermediate struct to the user rather than our internal struct by @kstenerud in #694
  • Always record the offending thread at least by @kstenerud in #696
  • Harmonize the callback names by @kstenerud in #697
  • Fix monitor disabling and uninstalling by @kstenerud in #698
  • Namespace any important strings, such as paths and thread names by @kstenerud in #699
  • Fix some latent warning issues by @kstenerud in #700
  • Fix error pointer checks by @alanzeino in #701
  • Namespacing example using SPM by @kstenerud in #704
  • Update the codebase for the next Xcode version. by @kstenerud in #706
  • Remove remaining namespace code and header search paths around the old demangler by @kstenerud in #707
  • Remove direct dependency between the signal and memory monitors by @kstenerud in #705

New Contributors

Full Changelog: 2.3.0...2.4.0

2.3.0

03 Aug 22:24

Choose a tag to compare

What's Changed

  • Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in #641
  • Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in #646
  • Add support for custom namespacing by @kstenerud in #647
  • Added missing Foundation.h header by @kstenerud in #648
  • Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in #649
  • Use latest-stable in unit-tests by @GLinnik21 in #650
  • Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in #653
  • Add more class names to the namespacer that clang missed by @kstenerud in #652
  • Forward Mach exceptions to the next handler by @kstenerud in #651
  • Add thread run state string to report by @DariaKunoichi in #645
  • Binary Image Cleanup by @naftaly in #655
  • Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in #658
  • [EASY] fix off by one error in arm64.c by @naftaly in #660
  • Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in #659
  • Raise max captured thread count to 1000 by @DariaKunoichi in #664
  • Report Version Based Timestamp Mixup Fix by @naftaly in #663
  • Add script to toggle unsafe flags in Package.swift for release process by @GLinnik21 in #673

New Contributors

Full Changelog: 2.2.0...2.3.0

2.3.0-RC.1

02 Aug 22:28

Choose a tag to compare

2.3.0-RC.1 Pre-release
Pre-release

Note on this Release Candidate

This RC version was published due to a limitation in Swift Package Manager (SPM), which forbids the use of unsafeFlags in release builds. Until this is resolved, the package is distributed as a release candidate.

What's Changed

  • Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in #641
  • Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in #646
  • Add support for custom namespacing by @kstenerud in #647
  • Added missing Foundation.h header by @kstenerud in #648
  • Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in #649
  • Use latest-stable in unit-tests by @GLinnik21 in #650
  • Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in #653
  • Add more class names to the namespacer that clang missed by @kstenerud in #652
  • Forward Mach exceptions to the next handler by @kstenerud in #651
  • Add thread run state string to report by @DariaKunoichi in #645
  • Binary Image Cleanup by @naftaly in #655
  • Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in #658
  • [EASY] fix off by one error in arm64.c by @naftaly in #660
  • Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in #659
  • Raise max captured thread count to 1000 by @DariaKunoichi in #664

New Contributors

Full Changelog: 2.2.0...2.3.0-rc.1

2.2.0

16 Jun 12:46

Choose a tag to compare

What's Changed

Full Changelog: 2.1.2...2.2.0

2.1.2

24 May 20:15

Choose a tag to compare

What's Changed

  • Update release workflow: Remove test functionality and add publish_only option by @GLinnik21 in #629
  • Fix data race in memory monitor by @naftaly in #631

Full Changelog: 2.1.1...2.1.2

2.1.1

08 May 17:49

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.1.0...2.1.1

2.1.0

30 Apr 09:39

Choose a tag to compare

What's Changed

  • Add Swift version setting to Tuist project configuration by @GLinnik21 in #611
  • Add os_unfair_lock for thread safety in KSCrashMonitor by @GLinnik21 in #610
  • Return properly typed reports from KSCrashReportFilterConcatenate by @tmolitor-stud-tu in #616
  • Use active delay instead of waiting for crash on macOS by @bamx23 in #618
  • Fix Ruby version specification in Gemfile by @GLinnik21 in #621
  • Add binary image caching with thread safety in KSDynamicLinker by @GLinnik21 in #614
  • fix config reportWrittenCallback by @tamwei in #622
  • Add tests for reportWrittenCallback functionality by @GLinnik21 in #623

New Contributors

Full Changelog: 2.0.0...2.1.0

2.0.0

03 Mar 10:36

Choose a tag to compare

The pre-release versions of KSCrash 2.0 have been available since September 2024. Our early adopters have successfully deployed it on millions of devices, confirming its reliability and robustness in diverse environments.

Major Updates

  1. Modular Architecture: KSCrash has been restructured into modular components, allowing you to incorporate only the functionalities you require. This change improves organization and flexibility.

  2. Configuration-based Setup: The setup process now utilizes dedicated configuration objects, moving away from property manipulations to enhance clarity and maintainability.

  3. Swift-First API Design: Adapted the API to leverage Swift’s strengths with enhanced naming conventions and type safety for an intuitive developer experience.

  4. Report Store Extraction: Reporting functionalities have been centralized into the new KSCrashReportStore class, streamlining management.

  5. Type-Safe Reports: Reports now use specific types instead of raw dictionaries, providing increased type safety and simplifying their usage.

  6. Installation API Changes: Improved the installation process with more transparent error handling and refined configuration management.

  7. Optional Filters and Modules: Core filters, including Doctor and Demangle, are now modular, offering precise control over feature inclusion.

New Features

  • Memory Monitoring: Comprehensive memory monitoring capabilities have been introduced, including memory footprint tracking, pressure detection, and level states indication.

  • SIGTERM Monitoring: Added support for detecting SIGTERM signals, offering more insights into app termination events.

  • App State Tracking: The new KSCrashAppStateTracker provides detailed monitoring of application state transitions.

Migration Guidance

Please refer to the Migration Guide for comprehensive instructions on migrating from version 1.x to 2.0. It details changes in the API, installation, and configuration processes to facilitate a smooth transition.

Change Summary from RC8

  • Ensured compatibility with macOS 15 in our continuous integration setups by @GLinnik21 in #601.
  • Made certain simulators are ready before executing Xcode-related tasks in our CI workflow by @bamx23 in #602.

Full Changelog: 2.0.0-rc.8...2.0.0

2.0.0-RC.8

01 Dec 14:10

Choose a tag to compare

2.0.0-RC.8 Pre-release
Pre-release

What's Changed

  • Fix ksmemory_notifyUnhandledFatalSignal memory crash by @Sergey70 in #594

Full Changelog: 2.0.0-rc.7...2.0.0-rc.8