The Crashlytics platform is unable to be included as a transitive dependency, meaning you are unable to use it in a framework that will be included in an application that uses Crashlytics. This library uses dependency injection to create a wrapper around the Crashlytics
and Answers
classes for use in other frameworks.
- Set custom keys on crash reports
- Record non-fatal errors
- Record Swift
ErrorType
errors with custom keys - Logging using
CLS_LOG
- Record events using Answers
- Logging of custom exceptions
CrashlyticsRecorder
and AnswersRecorder
act as wrappers for Crashlytics
and Answers
respectively. To use these classes, include this pod as a dependency for your framework. If you are using CocoaPods, this can be accomplished by adding the following lines to your Podfile and podspec.
Podfile
pod 'CrashlyticsRecorder'
podspec
s.dependency 'CrashlyticsRecorder'
You can then use CrashlyticsRecorder.sharedInstance
and AnswersRecorder.sharedInstance
in your framework.
In order for CrashlyticsRecorder
to work properly in your application's included frameworks, you will need to take a few steps.
- Include the
CrashlyticsAdapter.swift
file in your application target. Alternatively, you can copy the following code into yourAppDelegate
, or anywhere in your application target.
import Crashlytics
import CrashlyticsRecorder
extension Crashlytics: CrashlyticsProtocol {
public func log(format: String, args: CVaListPointer) {
#if DEBUG
CLSNSLogv(format, args)
#else
CLSLogv(format, args)
#endif
}
}
extension Answers: AnswersProtocol { }
- Create the
CrashlyticsRecorder
andAnswersRecorder
shared instances in yourAppDelegate
after setting upCrashlytics
.
public func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Fabric.with([Crashlytics()])
CrashlyticsRecorder.createSharedInstance(crashlytics: Crashlytics.sharedInstance())
AnswersRecorder.createSharedInstance(answers: Answers.self)
}
You must have a Fabric
account to use Crashlytics
and the CrashlyticsRecorder
in your applications.
Anthony Miller, anthonymdev@gmail.com
CrashlyticsRecorder is available under the MIT license. See the LICENSE file for more info.