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;
有关更多信息,请访问我们的公共文档此处。