许可证 | MIT |
发布最新版本 | 2020年2月 |
由 微软、Lukas Spieß、Clement Polet、Jae Lim、Alexander Chocron 维护。
HockeySDK-tvOS 实现了在您的 tvOS 应用程序中支持使用 HockeyApp。
目前支持以下功能:
收集崩溃报告:如果您的应用崩溃,则会将格式与 Apple 崩溃报告相同的崩溃日志写入设备存储。如果用户再次启动应用,则会要求用户将崩溃报告提交给 HockeyApp。这适用于测试版和正式版应用,即提交到 App Store 的应用。
用户度量:了解用户行为以提高您的应用。通过每日和每月活跃用户追踪使用情况,监控受崩溃影响用户,以及通过会话计数来监测客户参与度。现在您可以在应用中跟踪自定义事件,了解用户操作,并在 HockeyApp 门户上查看聚合数据。
更新通知:应用将检查是否存在适用于您的 Ad-Hoc 或企业构建的新版本。如果存在,它将显示包含最新版本信息的警报视图。
认证:识别和认证 Ad-Hoc 或企业构建的用户
本文档包含以下章节
[注意]请注意,tvOS 需要 Bitcode。
我们建议将我们的二进制文件集成到您的 Xcode 项目中以设置针对 tvOS 应用的 HockeySDK。
请参阅 "如何创建新应用" 教程。这将为您提供用于初始化 SDK 的特定于 HockeyApp 的应用程序标识符。
HockeySDK-tvOS
的文件夹。)(请确保不要使用第三方解压缩工具!)将解压后的HockeySDK-tvOS
文件夹移动到您的项目目录。根据我们的经验,大多数项目都会专门为第三方库设立一个目录。这些说明假定您的项目具有此类目录,并且它被命名为Vendor
。
Vendor
,与目录相匹配。项目导航器
是可见的(⌘+1)Vendor
目录)拖放HockeySDK.framework
到Xcode中的项目,并将其移动到项目导航器
中希望的位置(例如,到名为Vendor
的组中)为任何添加的文件夹创建组
,并勾选目标框。如果您有多个目标,请确保选择您的tvOS目标。现在点击完成
。Objective-C
AppDelegate.m
)。import
语句下方添加以下行@import HockeySDK;
application:didFinishLaunchingWithOptions:
中,添加以下行以初始化并启动HockeySDK[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
// Do additional configuration if needed here
[[BITHockeyManager sharedHockeyManager] startManager];
[[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation];
Swift 3
AppDelegate.swift
)。import
语句下方添加以下行import HockeySDK
application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
中,添加以下行以初始化并启动HockeySDKBITHockeyManager.shared().configure(withIdentifier: appId)
BITHockeyManager.shared().start()
BITHockeyManager.shared().authenticator.authenticateInstallation() // This line is obsolete in the crash only builds
注意:SDK已优化以便尽可能延迟初始化,同时确保启动时可以捕获崩溃。每个模块以最多几秒钟的延迟执行其他代码。这确保了您的启动方法将尽可能地快速执行,并且SDK不会阻止启动过程(这将是糟糕的用户体验,并可能导致系统看门狗进程杀死您的应用)。
请务必阅读我们知识库中的关于Bitcode的文章,以确保您的崩溃能够正确符号化。
恭喜,您现在已经准备好使用HockeySDK了!
CocoaPods是Objective-C的依赖项管理器,它自动简化了在项目中使用诸如HockeySDK之类的第三方库的过程。有关如何为您的项目设置CocoaPods的说明,请访问官方CocoaPods网站。
Podfile
platform :tvos, '10.0'
pod 'HockeySDK-tvOS'
由于当前发布的版本是beta版本,因此崩溃报告当前具有有限的配置和微调选项。
HockeySDK默认启用崩溃报告。应用下次启动时会立即将崩溃发送到服务器。
为了提供最佳崩溃报告,我们在版本b1b94c016f9661af13bdf6295c3cd55cc7d6a56f下使用Plausible Labs' PLCrashReporter的一个自定义分支。
以下代码可以用来禁用此功能
Objective-C
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
[[BITHockeyManager sharedHockeyManager] setDisableCrashManager:YES]; //disable crash reporting
[[BITHockeyManager sharedHockeyManager] startManager];
Swift 3
BITHockeyManager.shared().configureWithIdentifier("APP_IDENTIFIER")
BITHockeyManager.shared().isCrashManagerDisabled = true
BITHockeyManager.shared().startManager()
崩溃将在应用启动时发送,无需用户任何交互。
SDK避免在崩溃时发送报告,因为这无法安全地实现。特别是,在没有造成设备资源严重消耗的情况下,无法以异步安全的方式执行网络访问,任何错误都可能导致双重故障或死锁,从而彻底丢失崩溃报告。我们发现用户确实会重新启动应用,因为大多数人不知道发生了什么,您将会收到绝大多数的崩溃报告。
在启动时异步发送挂起的崩溃报道,使用NSURLSession
。这避免了与缓慢启动有关的问题,并且对网络连接不良具有弹性。
BITHockeyManagerDelegate
协议提供了将附加数据添加到崩溃报告的方法
- (NSString *)userIDForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager;
- (NSString *)userNameForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager;
- (NSString *)userEmailForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager;
BITCrashManagerDelegate
协议(自动包含在BITHockeyManagerDelegate
中)提供了将更多特定于崩溃的数据添加到崩溃报告的方法
-(NSString *)applicationLogForCrashManager:(BITCrashManager *)crashManager
查看以下教程以了解如何添加CocoaLumberjack日志数据的示例: 如何在iOS或OS X中添加特定于应用日志数据 2. 字节附件: -(BITHockeyAttachment *)attachmentForCrashManager:(BITCrashManager *)crashManager
确保实现该协议
Objective-C
@interface YourAppDelegate () <BITHockeyManagerDelegate> {}
@end
Swift 3
class ViewController: UIViewController, BITHockeyManagerDelegate { .... }
并设置代理
Objective-C
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
[[BITHockeyManager sharedHockeyManager] setDelegate: self];
[[BITHockeyManager sharedHockeyManager] startManager];
Swift 3
BITHockeyManager.shared().configure(withIdentifier: "APP_IDENTIFIER")
BITHockeyManager.shared().delegate = self
BITHockeyManager.shared().start()
HockeyApp会自动提供有关你的应用如何被使用以及由谁使用的卑切、易理解且信息丰富的指标。
如果你想要禁用匿名用户和会话统计信息的自动收集,你可以随时关闭此功能
Objective-C
[BITHockeyManager sharedHockeyManager].disableMetricsManager = YES;
Swift 3
BITHockeyManager.shared().isMetricsManagerDisabled = true
通过跟踪自定义事件,您现在可以深入了解客户如何使用您的应用,了解他们的行为,在提升应用的同时解答重要的业务或用户体验问题。
Objective-C
BITMetricsManager *metricsManager = [BITHockeyManager sharedHockeyManager].metricsManager;
[metricsManager trackEventWithName:eventName]
Swift 3
let metricsManager = BITHockeyManager.shared().metricsManager
metricsManager.trackEvent(withName:eventName)
限制条件
可以为自定义事件附加属性和/或度量。
Objective-C
BITMetricsManager *metricsManager = [BITHockeyManager sharedHockeyManager].metricsManager;
NSDictionary *myProperties = @{@"Property 1" : @"Something",
@"Property 2" : @"Other thing",
@"Property 3" : @"Totally different thing"};
NSDictionary *myMeasurements = @{@"Measurement 1" : @1,
@"Measurement 2" : @2.34,
@"Measurement 3" : @2000000};
[metricsManager trackEventWithName:eventName properties:myProperties measurements:myMeasurements]
Swift 3
let myProperties = ["Property 1": "Something", "Property 2": "Other thing", "Property 3" : "Totally different thing."]
let myMeasurements = ["Measurement 1": 1, "Measurement 2": 2.3, "Measurement 3" : 30000]
let metricsManager = BITHockeyManager.shared().metricsManager
metricsManager.trackEvent(withName: eventName, properties: myProperties, myMeasurements: measurements)
以下选项仅显示在使用测试或企业配置文件提供时与更新特性互动和微调的一些可能性。欲了解更多信息,请查看我们的文档中关于BITUpdateManager
类的完整文档。
此功能通过弹出窗口显示更新和版本信息。
默认情况下,当运行在App Store构建时,此模块会自动禁用!
可以手动禁用应用内部更新通知,方法如下
Objective-C
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
[[BITHockeyManager sharedHockeyManager] setDisableUpdateManager: YES]; //disable auto updating
[[BITHockeyManager sharedHockeyManager] startManager];
Swift 3
BITHockeyManager.shared().configure(withIdentifier: "APP_IDENTIFIER")
BITHockeyManager.shared().isUpdateManagerDisabled = true //disable auto updating
BITHockeyManager.shared().start()
为了检查数据是否已正确发送到HockeyApp,并在控制台查看一些额外的SDK调试日志数据,在startManager
之前添加以下行
Objective-C
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
[BITHockeyManager sharedHockeyManager].logLevel = BITLogLevelDebug;
[[BITHockeyManager sharedHockeyManager] startManager];
Swift 3
BITHockeyManager.shared().configure(withIdentifier: appId)
BITHockeyManager.shared().logLevel = .verbose
BITHockeyManager.shared().start()
我们的文档可以在HockeyApp找到。
请确保以下文件没有复制到您的应用束中。这可以通过检查Xcode项目中您的应用目标在“构建阶段”标签下的“Copy Bundle Resources”项或通过在构建后检查最终的.app
束来完成
HockeySDK.framework
(除非您已构建SDK的动态框架版本-如果您不知道这意味着什么,您不需要担心这项)de.bitstadium.HockeySDK-tvOS-5.0.0.docset
启用控制台调试输出以查看SDK在初始化模块、发送和接收网络请求等时的额外信息,方法是在调用startManager
之前添加以下代码
`[BITHockeyManager sharedHockeyManager].logLevel = BITLogLevelDebug;`
我们期待通过pull request方式收到您的贡献。
本项目采用了微软开源行为守则。了解更多信息,请参阅行为守则常见问题,或联系[email protected]提出任何额外问题或意见。
在提交拉取请求之前,您必须签署一个贡献者许可协议。要完成贡献者许可协议(CLA),您必须通过此表格提交请求,然后在收到含有文档链接的电子邮件后,在电子邮件中电子签署CLA。对于任何项目,一旦签署CLA,就覆盖了所有提交给所有微软开源项目的贡献,除非另有说明。
如果您还有其他问题或遇到无法解决的问题,请随时创建一个GitHub问题,或在[email protected]联系我们。