从 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,请执行以下步骤:

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

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

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

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

Podfile

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

Carthage

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

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

  3. 打开“ 生成阶段 ”选项卡,找到 “运行脚本” 部分。 从 input.xcfilelistoutput.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 初始化

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

    早于:

    @import HockeySDK;
    
    import HockeySDK
    

    晚于:

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

    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]

  3. [可选]修改项目的 Info.plist

    如果打算使用 分发,请按照上述步骤操作:

    • URL typesCFBundleURLTypesInfo.plist 文件添加新密钥, (以防 XCode 将 Info.plist 显示为源代码) 。
    • 将第一个子项的键更改为 URL SchemesCFBundleURLSchemes
    • 输入 appcenter-${APP_SECRET} 作为 URL 方案,并将 替换为 ${APP_SECRET} 应用的应用机密。

    有关此内容的详细信息,请参阅 App Center 分发文档

  4. 替换整个应用程序中的 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 文档