用于 Sentry 的 Swift 客户端。
最简单的方法是使用 CocoaPods。它负责所有的设置、所需框架和第三方依赖关系。
步骤
pod 'RavenSwift'
pod install
或者,您可以手动安装。
git clone git://github.com/getsentry/raven-swift
RavenClient.swift
和 RavenConfig.swift
文件拖到您的项目中。检查“复制到目标组的文件夹中”和您的目标。UncaughtExceptionHandler.h
和 .m
文件拖到您的项目中。检查“复制到目标组的文件夹中”和您的目标。或者您也可以将其作为 Git 子模块添加
cd [您项目的根目录]
git submodule add git://github.com/getsentry/raven-swift
RavenClient.swift
和 RavenConfig.swift
文件拖到您的项目中。取消选中“复制到目标组的文件夹中”框,选中您的目标。UncaughtExceptionHandler.h
和 .m
文件拖到您的项目中。检查“复制到目标组的文件夹中”和您的目标。注意:如果您使用 Cocoapods,请在使用 raven 客户端的地方导入 RavenSwift
。
虽然您可以初始化与您的应用程序合适的 RavenClient
实例数量,但存在一个全局可用的共享单例实例。这个单例实例通常在应用程序代理的 application:didFinishLaunchingWithOptions:
方法中进行配置。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
RavenClient.clientWithDSN("https://30d629f2df9c4fdf8507e1704c09a526:[email protected]/888")
// [...]
return true
}
初始化的第一个 RavenClient
自动配置为单例实例,并通过 sharedClient
单例方法提供。
println("I am your RavenClient singleton : \(RavenClient.sharedClient?)")
// Sending a basic message (note, does not include a stacktrace):
RavenClient.sharedClient?.captureMessage("TEST 1 2 3")
// Sending a message with another level and a stacktrace:
RavenClient.sharedClient?.captureMessage("TEST 1 2 3", level: .kRavenLogLevelDebugInfo, method: __FUNCTION__, file: __FILE__, line: __LINE__)
您还可以捕获错误
var error: NSError?
NSFileManager.defaultManager().removeItemAtPath("some/path", error: &error)
// Sending basic error
RavenClient.sharedClient?.captureError(error!)
// Sending error with method, file and line number
RavenClient.sharedClient?.captureError(error!, method: __FUNCTION__, file: __FILE__, line: __LINE__)
如果您想设置全局异常处理程序,您需要将此添加到您的 桥接头。此步骤仅在手动安装时需要。CocoaPods 会为您处理此问题。
#import "UncaughtExceptionHandler.h"
然后您可以设置全局异常处理程序
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
RavenClient.clientWithDSN("https://[public]:[secret]@[server]/[project id]")
RavenClient.sharedClient?.setupExceptionHandler()
return true
}
注意:当使用全局异常处理程序时,异常将在下一次启动应用程序时发送。
有 Bug 吗?请创建 GitHub 上的问题!
https://github.com/getsentry/raven-swift_issues
raven-swift 是一个开源项目,您的贡献非常欢迎。
raven-swift 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。