top of page
Writer's pictureDon Peter

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.


Crash report
A crash report

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.


Stack trace of a crash report
Stack trace of a crash report

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


Activity trail from a crash report
Device data from a crash report

Device State data from a crash report
Device State data from a crash report

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.

Finotes is available for iOS (as Objective-C and Swift Framework), watchOS (as Objective-C and Swift Framework) and Android (as Java and Kotlin SDK) platforms.


Visit finotes.com to learn more about Finotes. Detailed documentation is available at docs.finotes.com.

Comments


Blog for Mobile App Developers, Testers and App Owners

 

This blog is from Finotes Team. Finotes is a lightweight mobile APM and bug detection tool for iOS and Android apps.

​

In this blog we talk about iOS and Android app development technologies, languages and frameworks like Java, Kotlin, Swift, Objective-C, Dart and Flutter that are used to build mobile apps. Read articles from Finotes team about good programming and software engineering practices, testing and QA practices, performance issues and bugs, concepts and techniques. 

Monitor & Improve Performance of your Mobile App

 

Detect memory leaks, abnormal memory usages, crashes, API / Network call issues, frame rate issues, ANR, App Hangs, Exceptions and Errors, and much more.

Explore Finotes

bottom of page