Raygun 为 iOS、tvOS 和 macOS 提供的提供程序,支持崩溃报告和真实用户监控。
官方支持
注意:raygun4apple 可能会与更早版本的操作系统一起使用,但我们建议更新到我们构建和测试的版本,以避免遇到任何意外问题。
File > Add Package Dependencies…https://github.com/MindscapeHQ/raygun4apple.git现在你可以 配置客户端 了。
如果你没有使用 Xcode 来管理你的软件包,你可以更新你的 Package.swift 文件以包含 raygun4apple 作为依赖项。
这是一个使用 raygun4apple 作为依赖项的 macOS CLI 应用程序的示例
import PackageDescription
let package = Package(
name: "macos-cli",
dependencies: [
//Note - the version must be atleast 2.0.0 as this is earliest release of this package through SPM.
.package(url: "https://github.com/MindscapeHQ/raygun4apple.git", from: "2.0.0"),
],
targets: [
.executableTarget(
name: "macos-cli",
dependencies: ["raygun4apple"])
]
)
要使用 CocoaPods 集成 Raygun,请更新你的 Podfile 以包含
pod 'raygun4apple'
更新后,你可以从终端运行 pod install。
可以在此处找到最新版本。框架作为压缩文件附加到每个版本。 可以下载、解压缩并包含在您的项目目录中。
包含后,转到应用程序目标的“General”设置,并将 raygun4apple 框架添加到“Frameworks, Libraries, and Embedded Content”部分。 确保将框架设置为“Embed & Sign”。
要使用 Raygun,请在你的 Swift 文件中导入该软件包。 这是一个导入 raygun4apple、初始化提供程序并发送测试异常的示例。 请务必将 YOUR_API_KEY_HERE 替换为你 Raygun 应用程序设置屏幕中的 API 密钥。
import raygun4apple
let raygunClient = RaygunClient.sharedInstance(apiKey: "YOUR_API_KEY_HERE")
raygunClient.enableCrashReporting()
raygunClient.send(exception: NSException.init(name: .genericException, reason: "This is an exception from Raygun4Apple!"))
注意:如果您收到 A server with the specified hostname could not be found 错误,您可能需要为您的应用程序启用出站连接。在左侧导航器中选择你的项目目标,然后选择“Signing & Capabilities”选项卡,并选中“App Sandbox”部分中的 Outgoing Connections (Client)。
你可能想查看我们的Swift UI 示例应用程序
你可能需要在你的 AppDelegate 中启动 Raygun。 默认情况下,较新的 Swift UI 应用程序不附带 AppDelegate,因此你可以按照这些说明将一个添加到你的项目中(对于 macOS,你需要使用 NSApplication 代替)
完成后,你的 AppDelegate.swift 应该如下所示
import Foundation
import UIKit
import raygun4apple
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let raygunClient = RaygunClient.sharedInstance(apiKey: "YOUR_API_KEY_HERE")
raygunClient.enableCrashReporting()
return true
}
}
你现在正在跟踪应用程序中的崩溃,并且可以使用 RaygunClient.sharedInstance() 手动报告,例如
RaygunClient.sharedInstance().send(exception: NSException.init(name: .genericException, reason: "This is an exception from Raygun4Apple!"))
默认情况下,每个用户将被识别为匿名用户/客户。 但是,你可以使用以下代码段设置更详细的客户信息。
RaygunClient.sharedInstance().userInformation = RaygunUserInformation.init(
identifier: "123",
email: "ronald@raygun.com",
fullName: "Ronald Raygun",
firstName: "Ronald",
anonymous: false,
uuid: UUID().uuidString
)
(如果您想省略此信息的某些部分,则在 RaygunUserInformation 上提供了更多初始化程序)
现在,你的崩溃将被跟踪为在 Raygun 崩溃报告中影响此用户
在你的 AppDelegate 类文件中,导入目标平台的头文件。
#import <raygun4apple/raygun4apple_iOS.h>
通过将以下代码段添加到你的 AppDelegate application:didFinishLaunchingWithOptions 方法来初始化 Raygun 客户端
[RaygunClient sharedInstanceWithApiKey:@"_INSERT_API_KEY_"];
[RaygunClient.sharedInstance enableCrashReporting];
[RaygunClient.sharedInstance enableRealUserMonitoring];
[RaygunClient.sharedInstance enableNetworkPerformanceMonitoring]; // Optional
为确保 Raygun 客户端配置正确,请尝试使用以下代码段发送测试崩溃报告。
[RaygunClient.sharedInstance sendException:@"Raygun has been successfully integrated!"
withReason:@"A test crash report from Raygun"
withTags:@[@"Test"]
withCustomData:@{@"TestMessage":@"Hello World!"}];
默认情况下,每个用户将被识别为匿名用户/客户。 但是,你可以使用以下代码段设置更详细的客户信息。
RaygunUserInformation *userInfo = nil;
userInfo = [[RaygunUserInformation alloc] initWithIdentifier:@"ronald@raygun.com"
withEmail:@"ronald@raygun.com"
withFullName:@"Ronald Raygun"
withFirstName:@"Ronald"];
RaygunClient.sharedInstance.userInformation = userInfo;
有关更多信息,请访问我们的公共文档此处。