All Projects → shakebugs → shake-ios

shakebugs / shake-ios

Licence: other
Bug and crash reporting SDK for iOS apps.

Programming Languages

objective c
16641 projects - #2 most used programming language
C++
36643 projects - #6 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to shake-ios

Countly Sdk Ios
Countly Product Analytics iOS SDK with macOS, watchOS and tvOS support.
Stars: ✭ 585 (+2240%)
Mutual labels:  crash-reporting, ios-sdk
Plcrashreporter
Reliable, open-source crash reporting for iOS, macOS and tvOS
Stars: ✭ 2,320 (+9180%)
Mutual labels:  crash-reporting
Raygun4net
Raygun provider for .NET
Stars: ✭ 107 (+328%)
Mutual labels:  crash-reporting
Dotzu
📱👀 In-App iOS Debugging Tool With Enhanced Logging, Networking Info, Crash reporting And More.
Stars: ✭ 1,802 (+7108%)
Mutual labels:  crash-reporting
Sentry Php
The official PHP SDK for Sentry (sentry.io)
Stars: ✭ 1,591 (+6264%)
Mutual labels:  crash-reporting
Fabricio
Fetch Fabric.io statistics like never before
Stars: ✭ 162 (+548%)
Mutual labels:  crash-reporting
Uce Handler
Convenient Uncaught-Exception Handler Library For Testers and Developers. Copy, Share, Email, Save crash logs easily.
Stars: ✭ 101 (+304%)
Mutual labels:  crash-reporting
Raven Csharp
Superseded by: https://github.com/getsentry/sentry-dotnet
Stars: ✭ 231 (+824%)
Mutual labels:  crash-reporting
Exceptionless
Exceptionless server and jobs
Stars: ✭ 2,107 (+8328%)
Mutual labels:  crash-reporting
Xcrash
🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
Stars: ✭ 148 (+492%)
Mutual labels:  crash-reporting
Raven Weapp
Sentry SDK for WeApp
Stars: ✭ 142 (+468%)
Mutual labels:  crash-reporting
Meter
Library for interacting with MetricKit
Stars: ✭ 134 (+436%)
Mutual labels:  crash-reporting
Bugsnag Cocoa
Bugsnag crash reporting for iOS, macOS and tvOS apps
Stars: ✭ 167 (+568%)
Mutual labels:  crash-reporting
Qbreakpad
Cross-platform Qt crash handler, implemented as wrapper around google-breakpad
Stars: ✭ 115 (+360%)
Mutual labels:  crash-reporting
Xcrash
🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
Stars: ✭ 2,689 (+10656%)
Mutual labels:  crash-reporting
Ohbug
An open source application information monitoring platform.
Stars: ✭ 101 (+304%)
Mutual labels:  crash-reporting
Sentry Native
Sentry SDK for C, C++ and native applications.
Stars: ✭ 138 (+452%)
Mutual labels:  crash-reporting
Bugsnag Go
Automatic panic monitoring for Go and Go web frameworks, like negroni, gin, and revel
Stars: ✭ 155 (+520%)
Mutual labels:  crash-reporting
extensions-kit
📦 Collection of Swift+Apple Frameworks extensions for speeding up software development [iOS & iPadOS].
Stars: ✭ 71 (+184%)
Mutual labels:  ios-sdk
Flutter crashlytics
📦 Flutter plugin for Crashlytics integration
Stars: ✭ 193 (+672%)
Mutual labels:  crash-reporting

Shake iOS SDK

Bug and crash reporting SDK for iOS apps.

Features

Feature Avaliable
Bug reporting
Crash reporting
Users

Requirements

  • iOS 12.0+

Install Shake

Cocoapods

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.

Objective-C

pod 'Shake'

Swift

use_frameworks! 
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:

https://github.com/shakebugs/shake-ios

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 
do 
    codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}" 
done

Manually

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.

Objective-C

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;
}
@end

Swift

import UIKit
import Shake

@UIApplicationMain
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.

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].