从 HockeySDK 迁移到适用于 iOS 的 App Center SDK
重要
Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。
如果要更新应用程序以使用 App Center SDK 而不是 HockeySDK,请遵循此文档。
1. 更新库
1.1 删除旧的 HockeySDK
手动
如果已手动添加 SDK,请执行以下步骤:
从 XCode 项目中删除
HockeySDK.embeddedframework
引用。 单击“ 删除引用 ”按钮,不要单击“ 移动到回收站 ”按钮。打开项目设置,在“标头搜索路径框架搜索路径 / ”部分中的“生成设置”选项卡下,删除与 HockeySDK 相关的头文件的位置。
打开项目设置,在“将二进制文件与库链接”部分中的“生成阶段”选项卡下,删除与 HockeySDK 相关的依赖项条目。
从文件系统中删除
HockeySDK.embeddedframework
。
Podfile
如果已使用 CocoaPods 添加了 SDK,请从 Podfile 中删除 该 pod "HockeySDK"
行,然后运行 pod install
。
Carthage
从
Cartfile
中删除 HockeySDK 引用。 从文件系统中删除Cartfile.Resolved
。从 XCode 项目中删除
HockeySDK.framework
和HockeySDK.framework.dSYM
,然后单击“ 移动到回收站 ”按钮。打开“ 生成阶段 ”选项卡,找到 “运行脚本” 部分。 从
input.xcfilelist
和output.xcfilelist
中删除 HockeyApp。
1.2 添加新的 App Center SDK
App Center SDK 支持通过 Cocoapods、Carthage、Swift 包管理器以及 Xcode 项目中的框架进行集成。 阅读 App Center SDK 文档中有关如何集成 App Center SDK 的详细说明。
注意
App Center SDK 采用模块化方法设计,因此你可以使用任何或所有服务。 请参阅下表中的等效性:
HockeyApp 类 | App Center 模块 |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2.更新 SDK 设置代码
2.1 转换应用程序标识符
App Center SDK 使用全局唯一标识符 (GUID) 格式的应用程序标识符。 你的 HockeyApp 应用 ID 可由 App Center 使用,但你需要将其转换为不同的格式。 若要转换标识符,必须添加四个连字符才能获取 8-4-4-4-12 表示形式。
在 (HockeyApp) 之前: 00112233445566778899aabbccddeeff
(App Center) 后: 00112233-4455-6677-8899-aabbccddeeff
2.2 替换应用程序代码中的 SDK 初始化
替换 AppDelegate 类中的以下导入。
早于:
@import HockeySDK;
import HockeySDK
晚于:
@import AppCenter; @import AppCenterAnalytics; @import AppCenterCrashes; @import AppCenterDistribute;
import AppCenter import AppCenterAnalytics import AppCenterCrashes import AppCenterDistribute
替换注册代码
didFinishLaunchingWithOptions
找到 方法并替换 HockeyApp 代码。早于:
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"]; [[BITHockeyManager sharedHockeyManager] startManager]; [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation];
BITHockeyManager.shared().configure(withIdentifier: "APP_IDENTIFIER") BITHockeyManager.shared().start() BITHockeyManager.shared().authenticator.authenticateInstallation()
晚于:
[MSACAppCenter start:@"{Your app secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class], [MSACDistribute class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self, Distribute.self])
注意
App Center SDK 没有 的等效项
[[BITHockeyManager sharedHockeyManager] configureWithBetaIdentifier:liveIdentifier:delegate]
。[可选]修改项目的 Info.plist
如果打算使用 分发,请按照上述步骤操作:
- 为
URL types
CFBundleURLTypes
Info.plist 文件添加新密钥, (以防 XCode 将 Info.plist 显示为源代码) 。 - 将第一个子项的键更改为
URL Schemes
或CFBundleURLSchemes
。 - 输入
appcenter-${APP_SECRET}
作为 URL 方案,并将 替换为${APP_SECRET}
应用的应用机密。
有关此内容的详细信息,请参阅 App Center 分发文档。
- 为
替换整个应用程序中的 HockeyApp API 调用。 下面提供了详细的 API 映射表。
3. 服务和功能比较
核心
功能 | HockeyApp | 应用中心 |
---|---|---|
调整日志级别 | [BITHockeyManager sharedHockeyManager].logLevel = BITLogLevelVerbose |
[MSACAppCenter setLogLevel:MSACLogLevelVerbose] |
确定安装 | [BITHockeyManager sharedHockeyManager].installString |
[MSACAppCenter installId] |
标识用户 | [BITHockeyManager sharedHockeyManager].userID |
[MSACAppCenter setUserId:@"your-user-id"] |
分析
HockeySDK 启用按默认值收集指标。
仅当将 类传递给 Analytics
方法时, start
App Center SDK 才会注册 Analytics 服务。
功能 | HockeyApp | 应用中心 |
---|---|---|
自动跟踪会话 | 无法禁用 | 无法禁用文档 () |
具有属性的自定义事件 | 是 | [MSACAnalytics trackEvent:withProperties:] |
在运行时禁用服务 | [BITHockeyManager sharedHockeyManager].disableMetricsManager = YES |
[MSACAnalytics setEnabled:NO] |
崩溃
HockeySDK 支持按默认值进行崩溃报告。 下次启动应用时,将立即将崩溃发送到服务器。
仅当将 类start
传递给 Crashes
方法时,App Center SDK 才会注册崩溃服务。
功能 | HockeyApp | 应用中心 |
---|---|---|
自动发送崩溃 | [[BITHockeyManager sharedHockeyManager].crashManager setCrashManagerStatus: BITCrashManagerStatusAutoSend] |
默认启用文档 () |
生成测试崩溃 | [[BITHockeyManager sharedHockeyManager].crashManager generateTestCrash] |
[MSAC 崩溃生成TestCrash] |
有关上一次崩溃的信息 | [[BITHockeyManager sharedHockeyManager].crashManager lastSessionCrashDetails] |
[MSAC 崩溃 lastSessionCrashReport] |
马赫异常处理 | 默认情况下禁用 | 默认启用文档 () |
附加其他元数据 | 是 | 可以从委托) 附加文档 ( |
“自定义用户”对话框 | setAlertViewHandler | 默认情况下未提供文档 () |
在运行时禁用服务 | [[BITHockeyManager sharedHockeyManager] setDisableCrashManager: YES] |
[MSAC 崩溃 setEnabled:NO] |
分发
注意
与 HockeyApp 不同,App Center 应用内更新功能仅适用于使用 App Center 分发服务分发的内部版本。 当连接调试器时,分发将不起作用。 如果应用使用的是专用通讯组,在添加 App Center 分发 SDK 后首次安装并打开应用后,浏览器将打开以对用户进行身份验证并启用应用内更新。 如果在运行时设置专用应用内更新跟踪,此浏览器也会打开。 这是一次性步骤,在应用的后续版本中不会发生。 有关更多详细信息,请参阅 App Center 分发文档 。
默认情况下,HockeySDK 不启用应用内更新。
仅当将 类start
传递给 Distribute
方法时,App Center SDK 才会注册应用内更新服务。 此模块默认启用,这与 HockeySDK 不同。
功能 | HockeyApp | 应用中心 |
---|---|---|
受限的应用内更新 | [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation] |
MSACDistribute.updateTrack |
在运行时禁用服务 | [[BITHockeyManager sharedHockeyManager] setDisableUpdateManager: YES] |
[MSACDistribute setEnabled:NO] |
自定义更新对话框 | shouldDisplayUpdateAlertForUpdateManager | 文档 |