测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | 商业 |
发布上次发布 | 2024 年 8 月 |
由 Fredric Newberg,Embrace CI 维护。
欢迎来到 iOS SDK!Embrace.io 帮助您监视移动应用的性能和稳定性,并保持用户的满意度。我们提供对用户体验的独特可见性,并提供您需要的信息和见解,以最大程度地发挥您应用性能。
本指南的目的是帮助您快速开始使用 Embrace.io SDK,并开始从您的应用发送数据。
为了从 Embrace.io 控制台获取更多信息和上下文,请查看我们的 文档站点。
有疑问?请在 Slack 或 [email protected] 联系我们。
Embrace.io SDK 通过 CocoaPods 提供。将以下行添加到您的 Podfile。
pod 'EmbraceIO'
您可以通过在 AppDelegate
中调用 startWithKey:
来初始化 Embrace.io,并传入您提供的 API 密钥。我们强烈建议您将 Embrace 初始化调用放置在您的 application:didFinishLaunchingWithOptions
回调的第一行。这确保了您应用启动过程的报告时间最精确,并允许 Embrace 立即开始在整个生命周期中监视您的应用初始化的其他 SDK。
请以同步方式实例化 Embrace SDK,即不要在 dispatch_async
块上。Embrace 大多用 async 队列进行处理,但同步实例化有助于我们在您的应用启动时最佳抓住任何问题。
初始化 Embrace.io SDK 还会触发 startup
事件的开始。
在 AppDelegate.m
#import <Embrace/Embrace.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[Embrace sharedInstance] startWithKey:<YOUR-API-KEY>];
...
return YES;
}
在 AppDelegate.swift
import Embrace
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Embrace.sharedInstance().start(withKey: <YOUR-API-KEY>)
...
return true
}
Embrace.io SDK 在初始化后自动开始记录 startup
事件,因此下一步是通知 SDK 应用启动已完成。你放置这个调用的位置完全取决于你应用的架构——常见用例包括当用户的主信息流加载完成、显示登录界面或在第一个可以交互的屏幕出现之前。
如果你的应用中存在多个启动结束的位置,例如在推送通知处理程序或登录/注销用户的各个屏幕中,可以多次添加 endAppStartup
调用。这确保了在遵循未结束启动的代码路径时,你的仪表板不会显示错误的失败启动。
例如在 SomeViewController.m
#import <Embrace/Embrace.h>
- (void)viewDidLoad
{
...
[[Embrace sharedInstance] endAppStartup];
}
例如在 SomeViewController.swift
import Embrace
override func viewDidLoad() {
...
Embrace.sharedInstance().endAppStartup()
}
好了,你的应用现在正在发送 startup
事件的数据,同时在用户会话期间监控 CPU、内存和网络问题。
Embrace.io SDK 允许您向当前用户添加标识符,以便您可以将它们与自己的内部数据关联起来,并在 Web 仪表板上执行搜索和细分。
您可以通过 setUserIdentifier:
、setUsername:
和 setUserEmail:
函数为任何用户设置 identifier
、username
或 email
。
[[Embrace sharedInstance] setUserIdentifier:@"123"];
[[Embrace sharedInstance] setUsername:@"max"];
[[Embrace sharedInstance] setUserEmail:@"[email protected]"];
Embrace.sharedInstance().setUserIdentifier("123")
Embrace.sharedInstance().setUsername("max")
Embrace.sharedInstance().setUserEmail("[email protected]")
这些属性可以通过调用 clearUserIdentifier
、clearUsername
和 clearUserEmail
重新设置。
当您想了解应用中即时发生的事情时,您可以将信息或错误消息发送到 Embrace.io 以了解用户所发生的事情。
这些消息包含诊断信息、当前线程的堆栈跟踪以及您指定的任何自定义属性。错误消息还会捕获屏幕截图,以便您可以看到设备在错误发生时的显示内容。(屏幕截图可以通过方法参数启用/禁用。)
错误消息 通过调用 logErrorMessage:screenshot:properties:
触发,其中 message
是一个字符串,可以在稍后的 Web 仪表板上进行搜索,而 properties
是一个可选的字典,最多可以包含(10个)属性。screenshot
决定了在记录日志时是否应该捕获屏幕截图。
信息消息 可以通过调用 logInfoMessage:properties:
发送,与错误日志使用的 message
和 properties
参数相同。
// Log an error message
NSString *error = @"checkout_error";
[[Embrace sharedInstance] logErrorMessage:logMessage screenshot:YES properties:nil];
// Log an info message
NSString *info = @"something_happened";
[[Embrace sharedInstance] logInfoMessage:info properties:@{@"screen": @"checkout"}];
// Log an error message
Embrace.sharedInstance().logErrorMessage("something_bad", screenshot: true, properties: [:])
// Log an info message
Embrace.sharedInstance().logInfoMessage("something_happened", properties: ["error": "not_found"])
信息和使用错误消息将被分组并显示在Embrace.io仪表板的首页上。
查看我们的文档站点以了解有关以下方面的说明:
遇到问题或疑问?请在Slack或[email protected]联系我们。