EmbraceIO 6.3.0

EmbraceIO 6.3.0

测试已测试
Lang语言 Obj-CObjective C
许可证 商业
发布上次发布2024 年 8 月

Fredric NewbergEmbrace CI 维护。



EmbraceIO 6.3.0

  • Embrace.io

embrace

CocoaPods Compatible Platform

Embrace.io iOS SDK

欢迎来到 iOS SDK!Embrace.io 帮助您监视移动应用的性能和稳定性,并保持用户的满意度。我们提供对用户体验的独特可见性,并提供您需要的信息和见解,以最大程度地发挥您应用性能。

本指南的目的是帮助您快速开始使用 Embrace.io SDK,并开始从您的应用发送数据。

开始

  1. 安装 Embrace.io SDK
  2. 监控应用启动性能
  3. 识别用户
  4. 记录错误消息

为了从 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 事件的开始。

Objective-C

AppDelegate.m

#import <Embrace/Embrace.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
	[[Embrace sharedInstance] startWithKey:<YOUR-API-KEY>];
	
	...
	
	return YES;
}

Swift

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 调用。这确保了在遵循未结束启动的代码路径时,你的仪表板不会显示错误的失败启动。

Objective-C

例如在 SomeViewController.m

#import <Embrace/Embrace.h>

- (void)viewDidLoad
{
	...
	
	[[Embrace sharedInstance] endAppStartup];
}

Swift

例如在 SomeViewController.swift

import Embrace

override func viewDidLoad() {
    ...
    
    Embrace.sharedInstance().endAppStartup()
}

好了,你的应用现在正在发送 startup 事件的数据,同时在用户会话期间监控 CPU、内存和网络问题。

识别用户

Embrace.io SDK 允许您向当前用户添加标识符,以便您可以将它们与自己的内部数据关联起来,并在 Web 仪表板上执行搜索和细分。

自定义标识符

您可以通过 setUserIdentifier:setUsername:setUserEmail: 函数为任何用户设置 identifierusernameemail

Objective-C

[[Embrace sharedInstance] setUserIdentifier:@"123"];
[[Embrace sharedInstance] setUsername:@"max"];
[[Embrace sharedInstance] setUserEmail:@"[email protected]"];

Swift

Embrace.sharedInstance().setUserIdentifier("123")
Embrace.sharedInstance().setUsername("max")
Embrace.sharedInstance().setUserEmail("[email protected]")

这些属性可以通过调用 clearUserIdentifierclearUsernameclearUserEmail 重新设置。

记录错误和日志信息

当您想了解应用中即时发生的事情时,您可以将信息或错误消息发送到 Embrace.io 以了解用户所发生的事情。

这些消息包含诊断信息、当前线程的堆栈跟踪以及您指定的任何自定义属性。错误消息还会捕获屏幕截图,以便您可以看到设备在错误发生时的显示内容。(屏幕截图可以通过方法参数启用/禁用。)

记录消息

错误消息 通过调用 logErrorMessage:screenshot:properties: 触发,其中 message 是一个字符串,可以在稍后的 Web 仪表板上进行搜索,而 properties 是一个可选的字典,最多可以包含(10个)属性。screenshot 决定了在记录日志时是否应该捕获屏幕截图。

信息消息 可以通过调用 logInfoMessage:properties: 发送,与错误日志使用的 messageproperties 参数相同。

Objective-C

// 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"}];

Swift

// 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仪表板的首页上。

附加功能

查看我们的文档站点以了解有关以下方面的说明:

  • 记录应用程序时刻(测量各种交互或功能的时长)
  • 添加增强型的网络监控
  • 为用户打上角色进行细分
  • 上传DSYM文件以在堆栈跟踪中显示更多信息

支持

遇到问题或疑问?请在Slack[email protected]联系我们。