Invocation Options

There are 3 different ways to invoke the bug reporter, enumerated by LIFEInvocationOptions:

  1. Shake: Invokes when the user shakes their device.

    Buglife.shared().invocationOptions = .shake
  2. Screenshot: Invokes when the user manually takes a screenshot using the Home + Lock buttons.

    Buglife.shared().invocationOptions = .screenshot
  3. Floating Button: Places a floating bug button in your app; Tapping this button invokes the bug reporter. This button can also be dragged around the screen.

    Buglife.shared().invocationOptions = .floatingButton
  4. None: Disables all except manual invocations.

    Buglife.shared().invocationOptions = []

    This may be preferable for App Store builds. In this case, we recommend embedding a hidden button somewhere in your app which manually presents the bug reporter, so that you can still collect logs & other information.

We recommend using the screenshot invocation for most apps. Taking screenshots to report feedback comes naturally to most users, and screenshots are still saved to the camera roll as expected.

Invocation options can be combined, e.g.

Buglife.shared().invocationOptions = [.shake, .screenshot]

Manual & Custom Invocations

You can manually present the bug reporter using:


You can use this together with the screenshot() method to invoke the bug reporter on custom gestures.