从 HockeySDK 迁移到适用于 macOS 的 App Center SDK

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

如果要更新应用程序以使用 App Center SDK 而不是 HockeySDK,请遵循此文档。

1. 更新库

1.1 删除旧的 HockeySDK

手动

如果已手动添加 SDK,请执行以下步骤:

  1. 从 XCode 项目中删除 HockeySDK.framework 引用。 单击 “删除引用 ”按钮,不要单击“ 移动到回收站 ”按钮。

  2. 打开项目设置,在“标题搜索路径框架搜索路径 / ”部分的“生成设置”选项卡下,删除与 HockeySDK 相关的头文件的位置。

  3. 打开项目设置,在“将二进制文件与库链接”部分的“生成阶段”选项卡下,删除与 HockeySDK 相关的依赖项条目。

  4. 从文件系统中删除 HockeySDK.framework

Podfile

如果已使用 CocoaPods 添加了 SDK,请从 Podfile 中删除该 pod "HockeySDK-Mac" 行,然后运行 pod install

Carthage

如果已使用 Carthage 添加 SDK,请执行以下步骤:

  1. Cartfile中删除 HockeySDK 引用。 从文件系统中删除 Cartfile.Resolved

  2. 从 XCode 项目中删除 HockeySDK.frameworkHockeySDK.framework.dSYM ,然后单击“ 移动到回收站 ”按钮。

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

2.更新 SDK 设置代码

2.1 转换应用程序标识符

App Center SDK 使用全局唯一标识符 (GUID) 格式的应用程序标识符。 App Center 可以使用 HockeyApp 应用 ID,但需要将其转换为不同的格式。 若要转换标识符,必须添加四个连字符才能获取 8-4-4-4-12 表示形式。

在 (HockeyApp) 之前: 00112233445566778899aabbccddeeff

(App Center) 后: 00112233-4455-6677-8899-aabbccddeeff

2.2 替换应用程序代码中的 SDK 初始化

  1. 替换 AppDelegate 类中的以下导入。

    早于:

    @import HockeySDK;
    
    import HockeySDK
    

    晚于:

    @import AppCenter;
    @import AppCenterAnalytics;
    @import AppCenterCrashes;
    
    import AppCenter
    import AppCenterAnalytics
    import AppCenterCrashes
    
  2. 替换注册代码

    didFinishLaunchingWithOptions找到 方法并替换 HockeyApp 代码。

    早于:

    [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
    [[BITHockeyManager sharedHockeyManager] startManager];
    
    BITHockeyManager.shared().configure(withIdentifier: "APP_IDENTIFIER")
    BITHockeyManager.shared().start()
    

    晚于:

    [MSACAppCenter start:@"{Your app secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
    
    AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])
    
  3. 在整个应用程序中替换 HockeyApp API 调用。 下面提供了详细的 API 映射表。

3. 服务和功能比较

核心

功能 HockeyApp 应用中心
调整日志级别 [BITHockeyManager sharedHockeyManager].logLevel = BITLogLevelVerbose [MSACAppCenter setLogLevel:MSACLogLevelVerbose]

分析

HockeySDK 按默认值收集指标。 App Center SDK 不会按默认值收集任何 (分析) 指标。 若要使用 App Center SDK 收集指标,请传递给 MSACAnalyticsstart: 方法。

功能 HockeyApp 应用中心
自动跟踪会话 默认情况下启用 默认启用文档 ()
具有属性的自定义事件 [MSACAnalytics trackEvent:withProperties:]
在运行时禁用服务 [BITHockeyManager sharedHockeyManager].disableMetricsManager = YES [MSACAnalytics setEnabled:NO]

崩溃

HockeySDK 报告每个默认值的崩溃。 下次启动应用时,将立即将崩溃发送到服务器。 App Center SDK 不会按默认值报告任何崩溃。 若要使用 App Center SDK 收集崩溃,请传递给 MSACCrashesstart: 方法。

功能 HockeyApp 应用中心
自动发送崩溃 [[BITHockeyManager sharedHockeyManager].crashManager setAutoSubmitCrashReport: YES] 默认启用文档 ()
生成测试崩溃 [[BITHockeyManager sharedHockeyManager].crashManager generateTestCrash] [MSAC 崩溃生成TestCrash]
有关上一次崩溃的信息 [[BITHockeyManager sharedHockeyManager].crashManager lastSessionCrashDetails] [MSAC 崩溃 lastSessionCrashReport]
马赫异常处理 [[BITHockeyManager sharedHockeyManager].disableMachExceptionHandler = YES] 默认启用文档 ()
附加其他元数据 可以从委托) 附加文档 (
“自定义用户”对话框 setCrashReportUIHandler 默认情况下未提供文档 ()
在运行时禁用服务 [[BITHockeyManager sharedHockeyManager] setDisableCrashManager: YES] [MSAC 崩溃 setEnabled:NO]