How to detect crashes in iOS apps?
Updated: Sep 24, 2022
One fatal issue that can occur in any mobile application is a crash.
App crashes will affect user experience, which can result in losing customers. Therefore, finding the root cause of crashes and fixing them fast is the most important job of any developer.
Here is where Finotes come in.
With basic integration, Finotes will detect and report crashes in iOS apps, which enables developers to send out a patch version release as fast as possible. For implementation details, visit documentation for iOS (Objective-C and Swift).
Common types of crashes in iOS apps
Apart from NSException based crashes, following common types of error signals found in iOS apps that can result in an app crash,
SIGABRT error signals
A SIGABRT exception is raised when an object receives an unimplemented message i.e there’s a call for a nonexistent method on an object.
SIGILL error signals
A SIGILL is raised when an Illegal, malformed or unknown processor instruction is executed.
SIGSEGV error signals
A SIGSEGV is raised when trying to access an invalid memory address. The address exists, but the program does not have access to it.
SIGBUS error signals
A SIGBUS is raised when trying to access an invalid memory address. The address does not exist, or the alignment is invalid.
SIGFPE error signals
A SIGFPE is raised when an invalid arithmetic operation such as division by zero is executed. This error can be related to either floating-point or integer-based arithmetic operations.
SIGPIPE error signals
A SIGPIPE is raised when a program attempts to write to a pipe without a process connected to the other end.
Finotes is capable of reporting all of the above error signal based crashes.
Crash Reports in Finotes
Here is a screenshot of a crash detected by Finotes from an iOS app.
All crashes detected and reported by Finotes framework will include a stack trace, device and device state data along with the occurrence time of the crash. Stacktrace will enable developers to find the root cause of the crash.
Screenshot of stack trace captured during an instance of a crash from an iOS app.
As Finotes takes privacy seriously, we do not take DSYM file from the developer during a release build instead provide a step by step guide to Symbolicate the stack trace in the developer machine itself.
Screenshot of device and device state data captured during an instance of a crash from an iOS app
Apart from crashes, Finotes detects memory leaks, API call issues, frame rate issues, abnormal memory usage, exceptions, function and feature failures. It also has the capability to report custom issues.