tvOS 入门

重要

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

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

App Center SDK 使用模块化体系结构,因此可以使用任何或所有服务。

让我们开始在应用中设置 App Center tvOS SDK,以使用 App Center Analytics 和 App Center 崩溃。

1.先决条件

若要使用 App Center SDK,必须满足以下要求:

  • tvOS 是在 tvOS 版本 11 或更高版本上的 Xcode 13 或更高版本中设置的。
  • 未使用提供故障报告功能的任何其他库。

2.在 App Center 门户中创建应用以获取应用机密

如果已在 App Center 门户中创建了应用,则可以跳过此步骤。

  1. 前往 appcenter.ms
  2. 注册或登录,点击门户右上角显示 “添加新” 的蓝色按钮,然后从下拉菜单中选择“ 添加新应用 ”。
  3. 输入应用的名称和可选说明。
  4. 选择 tvOS 作为 OS,选择 Objective-C/Swift 作为平台。
  5. 点击右下角显示 “添加新应用”的按钮。

创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页面右上角,单击 三个垂直点 ,然后选择 Copy app secret 获取应用机密。

3. 添加 App Center SDK 模块

可以通过 CocoapodsCarthageSwift 包管理器 或手动将二进制文件添加到项目中,将适用于 tvOS 的 App Center SDK 集成到应用中。

注意

4.0.0 App Center 版本中引入了中断性变更。 按照 迁移到 App Center SDK 4.0.0 及更高 版本部分从以前的版本迁移 App Center。

3.1 通过 Cocoapods 集成

  1. 向 添加以下依赖项, podfile 以将 App Center Analytics 和 App Center 崩溃包含在应用中。 这会拉取以下框架: AppCenterAppCenterAnalyticsAppCenter 崩溃。 相反,你可以指定要在应用中使用的服务。 每个服务都有自己的子规格,它们都依赖于 AppCenter。 它将自动拉入。

     # Use the following line to use App Center Analytics and Crashes.
     pod 'AppCenter'
    
     # Use the following lines if you want to specify which service you want to use.
     pod 'AppCenter/Analytics'
     pod 'AppCenter/Crashes'
    
  2. 运行 pod install 以安装新定义的 Pod 并打开项目的 .xcworkspace

现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。

3.2 通过 Carthage 集成

下面是有关如何使用 Carthage 版本 0.30 或更高版本(用于生成依赖项并提供二进制框架的分散式依赖项管理器)将 App Center SDK 集成到 Xcode 项目中的步骤。

  1. 向 添加以下依赖项, Cartfile 以将 App Center Analytics 和 App Center 崩溃包含在应用中。

    # Use the following line to get the latest version of App Center
    github "microsoft/appcenter-sdk-apple"
    
    # Use the following line to get the specific version of App Center
    github "microsoft/appcenter-sdk-apple" ~> X.X.X
    
  2. 运行 carthage update --platform tvOS。 这会将依赖项提取到 Carthage/Checkouts 文件夹中,然后生成每个框架。

  3. 打开应用程序目标的“ 常规 设置”选项卡。将 AppCenter.frameworkAppCenterAnalytics.frameworkAppCenterCrashes.framework 文件从 Carthage/Build/tvOS 文件夹拖放到 Xcode 的项目导航器中。 启动 SDK 需要 AppCenter.framework 。 如果未将其添加到项目中,其他模块将无法工作,并且应用将无法编译。

  4. 将显示一个对话框,确保已选中应用目标。 然后单击“完成”。

    注意

    如果在生成阶段使用carthage copy-frameworks,则不应添加 App Center SDK,因为它们作为静态框架提供。

现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。

3.3 通过 Swift 包管理器集成

  1. 在“Xcode”菜单中,单击“ 文件 > Swift 包 > ”“添加包依赖项”。
  2. 在出现的对话框中,输入存储库 URL: https://github.com/microsoft/appcenter-sdk-apple.git
  3. “版本”中,选择“ 下一个主要 版本”并采用默认选项。
  4. 在“ 包产品 ”列中选择所需的模块。

现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。

注意

如果要通过 SwiftPM 集成 App Center,并且想要在应用的扩展目标中使用它,请确保在配置中提供 DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC=YES 。 这是必要的,以避免 SwiftPM 限制将模块链接到多个目标。

3.4 通过将二进制文件复制到项目中进行集成

下面是有关如何将编译的二进制文件集成到 Xcode 项目中的步骤,以便为 tvOS 应用设置 App Center Analytics 和 App Center 崩溃。

注意

App Center SDK 支持使用 XCframework。 如果要将 XCframeworks 集成到项目中,请从发布页面下载 AppCenter-SDK-Apple-XCFramework.zip 并将其解压缩。 生成的文件夹内容不是特定于平台的,而是包含每个模块的 XCframeworks。 可以像往常框架一样集成它们,如下所述。

  1. 下载以 zip 文件的形式提供的 App Center SDK 框架。

  2. 解压缩该文件,你将看到一个名为 AppCenter-SDK-Apple 的文件夹,其中包含每个平台文件夹中每个 App Center 服务的不同框架。 项目中需要名为 AppCenter 的框架,因为它包含在不同模块之间共享的代码。

  3. [可选]为第三方库创建子目录。

    • 最佳做法是,第三方库通常位于子目录内, (它通常称为 “供应商) ”,因此,如果没有使用库的子目录组织项目,请立即创建 供应商 子目录。
    • 在 Xcode 项目中创建一个名为 “供应商 ”的组,以模拟磁盘上的文件结构。
  4. 在 Finder 中打开解压缩的 AppCenter-SDK-Apple 文件夹,并将该文件夹复制到项目所需位置的文件夹中。 该文件夹在 App Center SDK 支持的其他平台的子文件夹中包含框架,因此可能需要删除不需要的子文件夹。

  5. 在 Xcode 中将 SDK 框架添加到项目中:

    • 确保项目导航器 (⌘+1) 可见。
    • 现在,从 Finder 拖放 AppCenter.frameworkAppCenterAnalytics.frameworkAppCenterCrashes.framework (供应商 文件夹内的 AppCenter.framework) 到 Xcode 的 Project Navigator。 需要 AppCenter.framework 才能启动 SDK,请确保它已添加到项目中,否则其他模块将不起作用,并且应用无法编译。
    • 将显示一个对话框,确保已选中应用目标。 然后单击“完成”。

注意

SDK 二进制文件不会按照 tvOS 框架约定进行打包。 原因是适用于 tvOS 的 App Center SDK 不是传统框架,而是静态框架。 必须将其链接为静态框架:确保未嵌入二进制文件,并且不要将它们包含在“复制捆绑包资源”生成阶段。

现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。

4. 启动 SDK

若要使用 App Center,必须选择加入要使用的模块 () 。 默认情况下,不会启动任何模块,必须在启动 SDK 时显式调用每个模块。

4.1 添加 import 语句

打开项目的 AppDelegate 文件并添加以下导入语句:

@import AppCenter;
@import AppCenterAnalytics;
@import AppCenterCrashes;
import AppCenter
import AppCenterAnalytics
import AppCenterCrashes

4.2 添加 start:withServices: 方法

在应用的 didFinishLaunchingWithOptions 委托方法中插入以下行:

[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])

警告

不建议在源代码中嵌入应用机密。

如果需要单独启动 App Center 服务,应:

  1. 使用应用机密配置或启动它。
  2. 如果代码可以多次调用,检查是否已配置 App Center。
  3. 在没有应用密码的情况下启动所需的服务 () 。
[MSACAppCenter configureWithAppSecret:@"{Your App Secret}"];
if ([MSACAppCenter isConfigured]) {
   [MSACAppCenter startService:[MSACAnalytics class]];
   [MSACAppCenter startService:[MSACCrashes class]];
}
AppCenter.configure(withAppSecret: "{Your App Secret}")
if AppCenter.isConfigured {
    AppCenter.startService(Analytics.self)
    AppCenter.startService(Crashes.self)
}

4.3 将占位符替换为应用机密

请确保将文本替换为 {Your App Secret} 应用程序的实际值。 可以在 App Center 门户的“入门”页或“设置”页上找到应用机密。

入门页包含上述代码示例,其中包含应用机密,你可以复制粘贴整个示例。

以上示例演示如何使用 start:withServices (start(withAppSecret:services:) for Swift) 方法,并包括 App Center Analytics 和 App Center 崩溃。

如果不想使用这两个服务之一,请从上述方法调用中删除相应的参数。

除非在 start 方法中将每个模块指定为参数,否则不能使用该 App Center 服务。 此外, start:withServices 在应用的生命周期中,Swift) API (start(withAppSecret:services:) 只能使用一次 – 所有其他调用都将向控制台记录警告,并且只有第一次调用中包含的模块可用。

例如 - 如果要加入 App Center Analytics,则应修改 start:withServices Swift) API 调用 (start(withAppSecret:services:) ,如下所示:

[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self])

很好,你都可以在 SDK 自动收集的门户上可视化分析和崩溃数据。

查看 App Center AnalyticsApp Center 崩溃 的文档,了解如何自定义和使用这两种服务的更高级功能。