This page describes in detail all the different methods that can be used to invoke the SDK.

Invoke manually

By default, the SDK is invoked when a user shakes their device. You don't need to code anything.

But if you want to, you can customize that.

Let's look at an example. You want your users to invoke SDK either when they shake their device, or when they take a screenshot. To do that, set true or false for certain configuration properties:

Shake.configuration.isInvokedByShakeDeviceEvent = true
Shake.configuration.isInvokedByScreenshot = true
Shake.start(clientId: "client-id", clientSecret: "client-secret")

This method also enables you to change the preferred invocation event on-the-go during runtime. Here’s a list of all available ones below, feel free to use any combination of these:

Shake.configuration.isInvokedByShakeDeviceEvent = true
Shake.configuration.isFloatingReportButtonShown = true
Shake.configuration.isInvokedByScreenshot = true
Shake.configuration.isInvokedByRightEdgePan = true


The default, shaking gesture causes the SDK to pop up.

Shaking gesture sensitivity can be fine tuned as shown in the snippet below:

Shake.configuration.shakingThreshold = 400 // Default value is 600.

In the above example, threshold is reduced a bit, meaning that Shake is a bit easier to invoke with the shaking gesture.

A valid treshold value range is 1 - 1000, with bigger values representing decreased sensitivity meaning that a stronger motion gesture is required to invoke Shake.


This invocation event will create the floating button on top of your app's UI which users can clearly see at all times. This button can be dragged to a more suitable position.

Taking a screenshot

The SDK will be invoked when testers make a screenshot while using your app.


App Store rejects apps that get in the way of the default screenshot behavior. For that reason, don't use this invocation method in your production releases.

Right Edge Pan

Invoke Shake with a one-finger swiping gesture from the right edge of the screen.

Invoke through code

You can invoke SDK through code by calling the method anywhere after Shake.start.

The show method can also be called with the argument SHKShowOption which determines the first presented screen in the Shake UI. Default value is SHKShowOptionNew.

func onDidPressReportProblem() {
/// Displays Shake with the New Ticket screen at the top of the stack.
func onDidPressShowFeedbackCenter() {
/// Displays Shake starting at the Home screen.

When Shake is invoked with the SHKShowOptionNew, app screenshot and automatic video recording are automatically attached and visible in the attached files section of the UI.

All other data, like Activity history or Black box, is automatically included in every user’s bug report — no additional code required.