PLCrashReporter is a reliable open source library that provides an in-process live crash reporting framework for use on iOS, macOS and tvOS. The library detects crashes and generates reports to help your investigation and troubleshooting with the information of application, system, process, thread, etc. as well as stack traces.
Crash reports are output as protobuf-encoded messages, and may be decoded using the CrashReporter library or any Google Protocol Buffers decoder.
In addition to the in-library decoding support, you may use the included
plcrashutil binary to convert crash reports to apple's standard iPhone text format. This may be passed to the symbolicate tool.
./bin/plcrashutil convert --format=iphone example_report.plcrash | symbolicatecrash
Future library releases may include built-in re-usable formatters, for outputting alternative formats directly from the phone.
Also, next optional tools are used to build additional resources:
protobuf-cto convert Protocol Buffer
.protofiles to C descriptor code. See the official protobuf-c repository for more information or use Homebrew to install it.
Open a new window for your Terminal.
Go to PLCrashReporter's root folder and run
xcodebuild -configuration Release -target 'Disk Image'
to create binaries for all platforms.
Verify that your iOS and tvOS binaries have Bitcode enabled by running
otool -l build/Release-appletv/CrashReporter.framework/Versions/A/CrashReporter | grep __LLVM (adjust the path to the binary as necessary). If you see some output, it means the binary is Bitcode enabled.
We are looking forward to your contributions via pull requests.
To contribute to PLCrashReporter, you need the tools mentioned above to build PLCrashReporter for all architectures and
protobuf-c to convert Protocol Buffer
.proto files to C descriptor code.