BMSAnalytics
BMSAnalytics 是 IBM Bluemix Mobile Services 的 Swift SDK 的分析器和记录器组件。
目录
摘要
BMSAnalytics 是 Bluemix 上 Mobile Analytics 服务客户端 SDK。此服务可提供有关您的应用程序的性能以及如何使用应用程序的洞察力。使用 BMSAnalytics,您可以选择汇集关于您的应用程序使用的以下信息,如唯一用户、应用程序生命周期持续时间、网络请求往返时间、崩溃以及任何其他您选择记录的信息或事件。
有关如何开始使用 Mobile Analytics 的更多信息,请参阅官方文档。
需求
- iOS 8.0+ / watchOS 2.0+
- Xcode 7.3, 8.0
- Swift 2.2 - 3.0
- Cocoapods 或 Carthage
安装
Bluemix 移动服务 Swift SDK 可以使用 Cocoapods 或 Carthage 进行安装。
Cocoapods
使用 Cocoapods 安装 BMSAnalytics,将其添加到 Podfile 中。如果您的项目还没有 Podfile,请使用 pod init
命令。
use_frameworks!
target 'MyApp' do
pod 'BMSAnalytics'
end
然后运行 pod install
命令,并打开生成的 .xcworkspace
文件。要升级到 BMSAnalytics 的新版本,请使用 pod update BMSAnalytics
。
有关使用 Cocoapods 的更多信息,请参阅 Cocoapods 指南。
Xcode 8
在 Xcode 8 中使用 Cocoapods 安装时,请确保已经安装 Cocoapods 1.1.0 或更高版本。您可以使用命令 sudo gem install cocoapods
获取 Cocoapods 的最新版本。
如果在使用 Xcode 8 打开项目(在安装 BMSAnalytics 之后)时收到提示“转换为当前 Swift 语法?”时,请勿将 BMSAnalytics、BMSCore 或 BMSAnalyticsAPI 转换为当前 Swift 语法。
Carthage
要使用 Carthage 安装 BMSAnalytics,请参阅 此处 的说明。
将此行添加到 Cartfile
github "ibm-bluemix-mobile-services/bms-clientsdk-swift-analytics"
然后运行 carthage update
命令。构建完成一次后,将 BMSAnalytics.framework
、BMSCore.framework
和 BMSAnalyticsAPI.framework
添加到您的项目中(如链接中提到的第 3 步)。
Xcode 8
使用Swift 2.3构建的应用,请使用命令 carthage update --toolchain com.apple.dt.toolchain.Swift_2_3
。否则,请使用 carthage update
。
示例用法
在此处查看完整的API参考https://ibm-bluemix-mobile-services.github.io/API-docs/client-SDK/BMSAnalytics/Swift/index.html。
--
导入模块
import BMSCore
import BMSAnalytics
--
初始化
初始化 BMSClient
和 Analytics
。这通常在应用的生命周期开始时执行,例如,在 AppDelegate.swift
中的 application(_:didFinishLaunchingWithOptions:)
方法。
BMSClient.sharedInstance.initialize(bluemixRegion: BMSClient.Region.usSouth)
Analytics.initialize(appName: "My App", apiKey: "1234", hasUserContext: true, collectLocation: true, deviceEvents: .lifecycle, .network)
--
配置日志和分析
启用日志记录和分析,并设置 Logger.logLevelFilter
为你想记录的严重级别。这通常在应用的生命周期开始时执行,例如,在 AppDelegate.swift
中的 application(_:didFinishLaunchingWithOptions:)
方法。
Analytics.isEnabled = true
Logger.isLogStorageEnabled = true
Logger.isInternalDebugLoggingEnabled = true
Logger.logLevelFilter = LogLevel.debug
--
设置应用的用户的身份
如果您的应用程序的用户使用用户名登录,您可以使用Analytics.userIdentity
跟踪每个用户。要使用此功能,您必须首先在Analytics.initialize()
方法中将hasUserContext
参数设置为true
,如初始化部分所示。如果将hasUserContext
设置为false
,则BMSAnalytics将自动匿名记录用户身份,将每个设备视为一个独特用户。
Analytics.userIdentity = "John Doe"
--
记录用户的当前位置
在使用此功能之前,您需要首先导入CoreLocation
并使用requestWhenInUseAuthorization()方法请求CLLocationManager的权限来监控用户的位置。
为了让BMSAnalytics
自动记录用户的位置,按照初始化部分所示,在Analytics.initialize()
方法中设置collectLocation
参数为true
。一旦设置这个参数,您可以在应用程序处于活动状态时随时调用Analytics.logLocation()
来记录用户的当前位置。
--
记录其他信息
创建一个Logger实例,并在应用程序的任何位置使用适当的严重级别记录消息。
let logger = Logger.logger(name: "My Logger")
logger.debug(message: "Fine level information, typically for debugging purposes.")
logger.info(message: "Some useful information regarding the application's state.")
logger.warn(message: "Something may have gone wrong.")
logger.error(message: "Something has definitely gone wrong!")
logger.fatal(message: "CATASTROPHE!")
// The metadata can be any JSON object
Analytics.log(metadata: ["event": "something significant that occurred"])
默认情况下,Bluemix Mobile Service SDK内部的调试日志不会打印到Xcode控制台。如果您想查看BMS调试日志,请将
Logger.isInternalDebugLoggingEnabled
属性设置为true
。
--
将数据发送到服务器
将所有已记录的日志和数据分析发送到移动分析服务。通常在应用程序生命周期开始时执行此操作,例如在AppDelegate.swift
的application(_:didFinishLaunchingWithOptions:)
方法中。
Logger.send(completionHandler: { (response: Response?, error: Error?) in
if let response = response {
print("Status code: \(response.statusCode)")
print("Response: \(response.responseText)")
}
if let error = error {
logger.error(message: "Failed to send logs. Error: \(error)")
}
})
Analytics.send(completionHandler: { (response: Response?, error: Error?) in
if let response = response {
print("Status code: \(response.statusCode)")
print("Response: \(response.responseText)")
}
if let error = error {
logger.error(message: "Failed to send analytics. Error: \(error)")
}
})
--
禁用生产应用程序的日志输出
默认情况下,Logger类会将日志打印到Xcode控制台。建议不要在发布模式构建的应用中启用Logger输出。为了做到这一点,请将名为RELEASE_BUILD
的调试标志添加到你的发布构建配置中。一种方法是在项目构建配置的其他Swift标志
部分添加-D RELEASE_BUILD
。
--
应用内反馈模式
用户和测试人员可以在运行和使用应用程序时记录并发送反馈和错误报告'应用内'。这样,应用程序所有者可以更深刻地了解应用程序的用户体验。另一方面,开发者将接收到准确的应用程序上下文,用于诊断和修复错误/功能缺陷。
应用程序可以在任何应用程序事件上调用反馈模式,例如按钮、菜单操作或手势时调用的方法
Analytics.triggerFeedbackMode()
许可证
版权所有2016 IBM公司。
遵循Apache许可证2.0版(“许可证”);除非按照法律规定或在书面协议中同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非法律规定或书面同意,否则在许可证下分发软件基于“原样”基础,不提供任何明示或暗示的保证或条件。有关许可协议的具体语言内容,请参阅许可证。