Swiftpack.co - shakebugs/shake-ios as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by shakebugs.
shakebugs/shake-ios 15.0.2
Bug and crash reporting SDK for iOS apps.
⭐️ 19
🕓 6 weeks ago
.package(url: "https://github.com/shakebugs/shake-ios.git", from: "15.0.2")

Shake iOS SDK

Bug and crash reporting SDK for iOS apps.


Feature Avaliable
Bug reporting
Crash reporting


  • iOS 12.0+

Install Shake


npm version

Not using CocoaPods yet? Follow their brief installation guide, then run pod init in the root of your project.

Next, add Shake to your Podfile.


pod 'Shake'


pod 'Shake'

Then, run the pod install command in your terminal.

Since CocoaPods might not always download the latest version of an SDK when using pod install, it's recommended that you also run pod update Shake after the installation has completed, or whenever you'd like to update Shake.

Swift Package Manager

Select File > Swift Packages > Add Package Dependency

Enter the Shake repository url when prompted:


Choose the appropriate cloning details and optionally specify the exact Shake version or branch.

Click Finish to add the Shake package to your project.

Note: Shake is distributed as a binary framework. There is a known issue with SPM signing the binary packages which will pop up when running your app on the real device. The issue has been fixed in the Xcode Version 12.2 beta 3.

Temporary workaround

Select your app target, and add a new Copy Files phase to the Build Phases. Make sure to change the destination to Frameworks folder. ​ Add a new Run Script phase and paste the following script to force the deep signing of frameworks with your own identity.

find "${CODESIGNING_FOLDER_PATH}" -name '*.framework' -print0 | while read -d $'\0' framework 
    codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}" 


Visit Shake iOS SDK GitHub repo, click the green Clone button and then Download ZIP. Shake directory will be downloaded to your computer — drag-and-drop the Shake.framework folder into your project. Then select Embed & Sign for Shake.framework in Xcode General tab; Frameworks, Libraries, and Embedded content (Xcode 11, Xcode 12).

Note: By not using a dependency manager like CocoaPods, you won't be able to use the simple pod update Shake command to always pull the latest version of Shake SDK into your app. Instead, you will have to repeat the the first step described in the above paragraph.

Initialize Shake

Initialize Shake in the didFinishLaunchingWithOptions callback of your AppDelegate. Replace your-api-client-id and your-api-client-secret with the actual values you have in your workspace settings.


In your AppDelegate.m:

#import "AppDelegate.h"
@import Shake;

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [SHKShake startWithClientId:@"your-api-client-id" clientSecret:@"your-api-client-secret"];
    return YES;


import UIKit
import Shake

class AppDelegate: UIResponder, UIApplicationDelegate {
  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        Shake.start(clientId: "your-api-client-id", clientSecret: "your-api-client-secret")
        return true

Note: Some of the Shake features use swizzling, so to avoid any kind of swizzling conflicts, we recommend calling Shake.start() before initializing all other frameworks.

Build and run

Select Product > Run in the menu bar. This first run will automatically add your app to your Shake Dashboard based on your app bundle ID.



Stars: 19
Last commit: 6 days ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

1 week ago

What's new

Users can finally report different types of feedback: bugs, suggestions and questions.

Screenshots are cool, but wouldn't it be even cooler if you could watch a short video of what a user did before reporting the bug? That's why we introduced Automatic screen recording.

Your users can record an additional video of their screen or grab one or two more extra screenshots and attach them to the feedback they're submitting — without ever leaving your app.

Shake will now automatically redact sensitive data from your network requests, notifications and touch events so it never reaches Shake servers.

Shake now allows you to manage sensitive data on the mobile device itself, so it never reaches the Shake servers. It can be used for notifications, network requests, screens and screen elements.

We've added console logs to Activity history.

You can now use the in-app Shake onboarding dialog to inform your users about Shake availability.

Removed support for iOS 10.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics