BMSAnalytics 2.2.5

BMSAnalytics 2.2.5

测试测试
Lang语言 SwiftSwift
许可证 Apache-2.0
发布最后发布2018年4月
SPM支持 SPM

Anthony OliverivenkatMohanraj Loganathan 维护。



  • IBM Bluemix 服务移动 SDK 提供

BMSAnalytics

Build Status Codacy Badge Coverage Status Platform CocoaPods Compatible

BMSAnalytics 是 IBM Bluemix Mobile Services 的 Swift SDK 的分析器和记录器组件。

目录

摘要

BMSAnalytics 是 Bluemix 上 Mobile Analytics 服务客户端 SDK。此服务可提供有关您的应用程序的性能以及如何使用应用程序的洞察力。使用 BMSAnalytics,您可以选择汇集关于您的应用程序使用的以下信息,如唯一用户、应用程序生命周期持续时间、网络请求往返时间、崩溃以及任何其他您选择记录的信息或事件。

此 SDK 还适用于 AndroidCordova

有关如何开始使用 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.frameworkBMSCore.frameworkBMSAnalyticsAPI.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

--

初始化

初始化 BMSClientAnalytics。这通常在应用的生命周期开始时执行,例如,在 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.swiftapplication(_: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

除非法律规定或书面同意,否则在许可证下分发软件基于“原样”基础,不提供任何明示或暗示的保证或条件。有关许可协议的具体语言内容,请参阅许可证。