In-App Bug and Crash Reporting for iOS Apps

Receive comprehensive reports for your iOS apps that help
you debug, fix, and build better apps, faster!

See Integration Steps

Comprehensive iOS Bug Reports

Know exactly why the bug happened

Tracing back what caused the bug and reproducing it usually takes a lot more time than fixing it. Instabug's SDK automatically captures all the details that you need to reproduce the bug or crash report so you can fix your iOS bugs faster than ever before.

Get Super Detailed Bug Reports

With each bug report, Instabug's iOS SDK grabs all the network requests and responses, and 3D view hierarchy inspections to be able to exactly identify what needs to be fixed.

Report bugs from your mobile application

Automatic iOS Crash Reporter

See exactly which line is causing your iOS app to crash

Whenever your iOS app crashes, Instabug captures and sends a detailed report of the symbolicated stack traces , different threads’ states, network requests, and steps to reproduce. You can also use it to log your handled exceptions or errors even if it doesn’t crash the app.

Monitor Your App Performance

We combine data from all your crashes and give you an overview of how your latest version is performing compared to its predecessors. We also prioritize crashes for you by calculating their severity and the size of impacted users, so that you can focus on what’s important.

Super detailed bug reports

Steps to Get Started

  1. Add the following line to your "Podfile":

    pod 'Instabug'
  2. Run pod install in your Xcode project directory. CocoaPods should download and install the SDK and all the required dependencies, and create a new Xcode workspace. Open up this workspace in Xcode.

  3. Import the framework in the appDelegate

  4. Call the SDK by including this line in "application didFinishLaunchingWithOptions"

    [Instabug startWithToken:@"YOUR-TOKEN-HERE" invocationEvents: IBGInvocationEventShake | IBGInvocationEventScreenshot];
  5. If your app doesn’t already access the microphone or photo library, you’ll need to add the following 2 keys to your app’s info.plist file:

    • NSMicrophoneUsageDescription
    • NSPhotoLibraryUsageDescription

You can also check out our API Reference for more detailed information about our SDK.

Frequently Asked Questions

Do I need to include all these frameworks?

Yes, the frameworks are required dependencies for our SDK to work.

Does Instabug support live apps?

Yes, you can safely use the SDK in your app, and submit it to the store.

Is the shake gesture customizable?

The SDK offers other gestures out of the box to choose from; Shake, Screenshot (Lock+Home), Right-edge swipe and a Floating button. You can also code your own gesture or have a button in your app that invokes our SDK. Check our documentation page for more details.

What kind of details does the SDK track?

The SDK grabs a lot of useful details: Device model & iOS version, memory & storage details, carrier & WiFi, battery details, iPhone 6 screen zoom mode, app/build version, user location, and the app's logs. And most importantly, the detailed actions that the user did until the time of reporting the bug.

How will the SDK affect my app size?

The additional size that gets added to your final app is ~0.5MB. However when downloading the SDK, it’s much bigger, because it’s a static library, hence it gets linked at compile time while building the app.

Can I disable Instabug’s crash reporting?

While you can keep using more than one crash reporting, you can disable Instabug’s crash reporting by calling this method:
[Instabug setCrashReportingEnabled:NO];

How long does it take for the crashes to show up on the dashboard?

Crash reporting is disabled while debugging. Make sure you are not running your application via Xcode while reporting crashes. Also note that crashes are sent to our servers on the next app launch, and not on the crashing session

How can I customize the time at which the intro message that guides users show up?

You can stop it using [Instabug setIntroMessageEnabled:] to disable it from showing automatically and [Instabug showIntroMessage] to show it later whenever you want.

Why does the Instabug upload dSYM script emit errors when debugging on a real device?

This happens because the upload dSYM script is attempting to upload your app symbols, but they are not generated by Xcode when debugging. To fix this, go to your project build settings and change Debug Information Format to DWARD with dSYM File in the Debug configuration.

I've uploaded DSYM but crashes are not symbolicated.

If you are using bitcode. Make sure you are uploading DSYM file extracted from Xcode organizer.

How do I get Console Log on iOS 10?

Access to console log is not working properly in iOS 10. This is a known issue that has been reported to Apple. Logs should start appearing in the dashboard again once this issue has been fixed by Apple. In the meantime, you can use IBGLog method. Logs from IBGLog will appear under *Instabug Log* on an issue’s page on the dashboard If you’re using any logging tool, such as CocoaLumberjack, you can attach a log file to reports via + [Instabug setFileAttachment:]. Those logs will appear under *Issue Attachments* on an issue’s page on the dashboard.

Why do I need to add these keys to the Info.plist?

Instabug needs access to the microphone and photo library. Starting from iOS 10, apps that don’t provide a usage description for those 2 permissions would be rejected when submitted to the App Store. The permission alert for accessing the microphone/photo library will NOT appear unless users attempt to attach a voice note/photo while using Instabug.

I don't use Microphone or PhotoLibrary permission in my app. What should I use for these keys?

We recommend using a usage description like:

  • "<app name> needs access to the microphone to be able to attach voice notes."
  • "<app name> needs access to your photo library for you to be able to attach images."