Giter VIP home page Giter VIP logo

bugfendersdk-macos's Introduction

Bugfender SDK for macOS CocoaDocs

Bugfender is a cloud service to collect mobile application logs. Developers can control log sending programmatically and manually for each device. Logs are available at the Bugfender console. You'll need an account.

BugfenderSDK works for iOS 8.0 and better.

Installing the SDK

First of all you will need to add the framework to your project.

Manual

If you prefer to install the SDK manually:

  1. Go to your Project > Your Target > General > Linked Frameworks and Libraries and drag BugfenderSDK.framework there.
  2. Make sure you have SystemConfiguration.framework and MobileCoreServices.framework there as well.
  3. Add -ObjC to your linker flags.
  4. (If using Swift) Import Bugfender.swift helper file to your project. Add an import BugfenderSDK statement at the top.

Using Bugfender

Once you have the framework in your project, here is how to use it.

Swift

In your AppDelegate class:

import BugfenderSDK

And add the following to application(_:didFinishLaunchingWithOptions:):

Bugfender.activateLogger("YOUR_APP_KEY")
Bugfender.enableUIEventLogging() // optional, log user interactions automatically
BFLog("Hello world!") // use BFLog as you would use NSLog

Then you may use BFLog as you would normally use NSLog.

You may also want to specify a logging level by using the following helper functions:

  • Bugfender.print(...): Default log.
  • Bugfender.warning(...): Warning log.
  • Bugfender.error(...): Error log.

Objective-C

Make Bugfender available project-wide by adding the following line to the .pch file:

#import <BugfenderSDK/BugfenderSDK.h>

Get an API key from the Bugfender console. In your AppDelegate call activateLogger when the application starts, like this:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
    // Activate the remote logger with an App Key.
    [Bugfender activateLogger:@"YOUR_APP_KEY"];
    [Bugfender enableUIEventLogging]; // optional, log user interactions automatically
    BFLog("Hello world!") // use BFLog as you would use NSLog
    ...
}

Then you may use BFLog as you would normally use NSLog.

You may also want to specify a logging level by using the following macros:

  • BFLog(...): Default log.
  • BFLogWarn(...): Warning log.
  • BFLogErr(...): Error log.

Advanced features

Check out the full documentation at CocoaDocs.

Sending issues

Bugfender allows you to send issues to the server. An issue is similar to a session but they are showed in the issues section and you can send issues any time from the app, even if the device is not enabled in the system. Issues are useful to keep track of important errors that you can detect in your code.

For sending an issue you can use the following function:

+(void)sendIssueWithTitle:(NSString*)title text:(NSString*)text;

The text parameter has Markdown notation support on the server, so you can add some style to the text being sent.

Here you have an example on how to send an issue using Markdown for the text:

[Bugfender sendIssueWithTitle:@"App Error" text:@"We have found an **Error**, we need to check it"];

Having your app decide when to send logs

In some special circumstances you may want to send logs, regardless of the enabled state of the device in the Bugfender console, for example in a custom exception handler. Use forceSendOnce to force sending the logs once, and use setForceEnabled: to force it for some period of time.

Device associated data

You can associate information to a device as if it were a dictionary:

[Bugfender setDeviceString:@"[email protected]" forKey:@"user email"];

You can find more information in our blog post Associated device information.

Device identifier

Bugfender automatically generates an identifier for the application install in a device. You can retrieve it to show in your UI or send to your server:

NSString *bugfenderDeviceIdentifier = [Bugfender deviceIdentifier];

To help your users find the device identifier, one easy way to do it is adding it to the app's user defaults, so it shows up in the app's section inside the device Settings.

// Displaying the device identifier in the app's settings.
[[NSUserDefaults standardUserDefaults] setObject:[Bugfender deviceIdentifier] forKey:@"bugfenderDeviceIDKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

Log buffer size

Bugfender keeps up to 5 MB worth of log data in the device. This way Bugfender can work offline, and you can get some log data from the past when enabling a device. You can change that limit with setMaximumLocalStorageSize.

// Setting maximum cache size to 1 Mb
[Bugfender setMaximumLocalStorageSize:1024*1024];

bugfendersdk-macos's People

Contributors

jgimenez avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bugfendersdk-macos's Issues

Does this library is live?

Hello guys. Thanks a lot for your product.
I use BugfenderSDK on iOS and it works fine.

Can you tell does current BugfenderSDK-macOS repository is live? Does it possible to use Bugfender on macOS or not? I see that library marked as BETA but all provided documentation in repo about iOS, not macOS.

Thanks a lot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.