- [Improvement] Support Xcode 16 build.
- [Improvement] Update PLCrashReporter to include privacy manifest.
- [Improvement] Increase the maximum report size to 1MB.
- [Improvement] Disable treating warnings as errors in code to avoid blockers when new Xcode warnings are introduced.
- [Improvement] Add caught exception logging to PLCrashReporter to generate reports from specific exception.
- [Improvement] Fix Interface declarations of instance variables (OBJC_INTERFACE_IVARS) warnings.
- [Feature] Add Xcode 14 support. Xcode 11 and Xcode 12 are out of support now.
- [Improvement] Fix analyzer warnings.
- [Fix] Config ignored
shouldRegisterUncaughtExceptionHandler
parameter in constructor. - [Improvement] Update
protobuf-c
to version 1.4.0. - [Improvement] Fix Xcode 13 deprecated build settings that might broke incremental builds (it drops workaround for Xcode's 12.0-12.4 bug). It only affects projects that use PLCrashReporter as sources.
- [Improvement] Specified minimum cocoapods version in podspec to 1.10.0
- [Improvement] Mark
PLCrashReporter.crashReportPath
method as public.
- [Fix] Fix error
Undefined symbols for architecture arm64
while building PLCrashReporter for simulator on Xcode 12.4 and higher. - [Fix] Fix Cycle in dependencies error happening when building project from sources multiple times.
- [Feature] Distribute XCFramework via Cocoapods and Carthage. The XCFramework will contain static libs only.
- [Fix] Include plcrashutil in all release archives
- [Fix] Fix
double-quoted
warnings in Xcode 12. - [Fix] Fix memory leak during stack trace unwinding.
- [Feature] Add an API to customize data path.
- Re-build Apple Silicon binaries with Xcode 12.2 Release Candidate to be able to submit the applications that use the framework as a binary to the App Store.
- Drop support of old versions of iOS and macOS. The minimal version is iOS 9 and macOS 10.9 now.
- Add Apple Silicon support. Note that
arm64
for iOS and tvOS simulators is available only in xcframework or SwiftPM. - Support saving custom data in crash report, see
PLCrashReporter.customData
property. - Fix exported symbols list for applying
PLCRASHREPORTER_PREFIX
prefix. - Fix Xcode 12 compatibility if the framework is used from sources.
- Fix getting the subtype of device architecture on iOS 14.
- Fix crash on collecting register values on
arm64e
devices with iOS 14.
- Fix building on Xcode 12 beta.
- Use memory mapping to reduce live reports memory pressure.
- Remove "CrashReporter Key: TODO" from text report output.
- Add
[PLCrashReporter]
prefix for all log messages.
- Fix crash on old operating systems: macOS 10.11, iOS 9 and tvOS 9 (and older).
- Fix duplicate symbols in applications with
-all_load
linker flag. - Fix exporting PLCrashReporter along with an application into
.xcarchive
. - Fix collecting stacktraces on
arm64e
devices in some cases.
- Drop support old versions of Xcode. The minimal version is Xcode 11 now.
- Support Mac Catalyst.
- Distribute
.xcframework
archive alongside with the other options. - Improve reliability of saving crash reports in case of memory corruption.
- Fix symbolication issues with new Objective-C runtime version.
- Add workaround for SwiftPM on Xcode 11.1 bug (
SWIFT_PACKAGE
is not defined) that prevents library usage on macOS.
- Support integration via Carthage.
- Support integration via Swift Package Manager. Please note that this way has some limitations:
- macOS 64-bit mach_* APIs is not available here.
protobuf-c
symbols are not prefixed, so it can cause conflicts with other libraries.- Additional architectures like
arm64e
are not built explicitly.
- Migrate to Automatic Reference Counting (ARC).
- Embed required
protoc-c
sources instead of using submodule. No more additional steps on cloning the repo. - Store sources generated from
*.proto
files to dropprotobuf-c
compiler requirement for building the library. It's required only for contributors now. - Enable generating debug symbols for static libraries. Previously it was included only to macOS framework.
- Fix framework targets type issue that prevents use the library as a project dependency (instead of binary distribution) in Xcode 11.
- Fix implicit casting warnings.
- Fix support for Xcode 10.
- Drop support old versions of Xcode and iOS. The minimal versions are Xcode 10 and iOS 8 now.
- Remove
UIKit
dependency on iOS. - Fix arm64e crash report text formatting.
- Fix possible crash
plcrash_log_writer_set_exception
method whenNSException
instances have anil
reason. - Apply bit mask for non-pointer isa values on macOS x64 (used in runtime symbolication).
- Strip pointer authentication codes on arm64e.
- Support macOS 10.15 and XCode 11 and drop support for macOS 10.6.
- Add support for tvOS apps.
- Update
protobuf-c
to version 1.3.2.protoc-c
code generator binary has been removed from the repo, so it should be installed separately now (brew install protobuf-c
).protoc-c
C library is included as a git submodule, please make sure that it's initialized after update (git submodule update --init
). - Remove outdated "Google Toolbox for Mac" dependency.
- The sources aren't distributed in the release archive anymore. Please use GitHub snapshot instead.
- Distribute static libraries in a second archive aside the frameworks archive.
- Fix minor bugs in runtime symbolication: use correct bit-mask for the data pointer and correctly reset error code if no categories for currently symbolicating class.
- Add preview support for the arm64e CPU architecture.
- Support for arm64e devices that run an arm64 slice (which is the default for apps that were compiled with Xcode 10 or earlier).
- Remove support for armv6 CPU architecture as it is no longer supported.
- Improve namespacing to avoid symbol collisions when integrating PLCrashReporter.
- Fix a crash that occurred on macOS where PLCrashReporter would be caught in an endless loop handling signals.
- Make it possible to not add an uncaught exception handler via
shouldRegisterUncaughtExceptionHandler
property onPLCrashReporterConfig
. This scenario is important when using PLCrashReporter inside managed runtimes, i.e. for a Xamarin app. This is not a breaking change and behavior will not change if you use PLCrashReporter.