macOS 入门

重要

Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息

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

让我们开始在您的应用中设置 App Center macOS SDK,以便使用 App Center Analytics 和 App Center 崩溃报告。

1.先决条件

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

  • 您的 macOS 项目已在 macOS 版本 10.14.4 或更高版本的 Xcode 13 或更高版本中设置。
  • 你的目标是在 macOS 10.13 或更高版本上运行的设备。
  • 你未使用提供崩溃报告功能的任何其他库。

注释

App Center SDK 将在 6 月 SDK 版本中 放弃对 Xcode 10 的支持

App Center SDK 分析和崩溃报告可以通过 XCFramework 或 SwiftPM 兼容于 Mac Catalyst。

App Center SDK 与 Apple Silicon 兼容。

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

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

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

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

3.添加 App Center SDK 模块

可通过 CocoapodsCarthageSwift 包管理器 或手动将二进制文件添加到项目中,将适用于 macOS 的 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 崩溃报告功能添加到应用中。 这将拉取以下框架: AppCenterAppCenterAnalyticsAppCenterCrashes。 可以改为指定要在应用中使用的服务。 每个服务都有自己的子规范,它们都依赖于 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 或更高版本在 Xcode 项目中集成 App Center SDK 的步骤,这是一个分散的依赖项管理器,用于生成依赖项并提供二进制框架。

  1. 将以下依赖项添加到应用中 Cartfile 以将 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 macOS。 这会将依赖项提取到 Carthage/Checkouts 文件夹中,然后生成每个框架。

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

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

    注释

    如果在carthage copy-frameworks使用,由于应用中心 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 项目中集成已编译的二进制文件,以便为 macOS 应用设置 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 项目中创建一个名为 Vendor 的组,以模拟磁盘上的文件结构。
  4. 在 Finder 中打开解压缩的 AppCenter-SDK-Apple 文件夹,并将该文件夹复制到项目的文件夹,位于所需位置。 该文件夹包含 App Center SDK 支持的其他平台的子文件夹中的框架,因此可能需要删除不需要的子文件夹。

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

    • 确保项目导航器可见(⌘+1)。
    • 现在,将 AppCenter.frameworkAppCenterAnalytics.frameworkAppCenterCrashes.framework 从 Finder( 供应商 文件夹中的框架)拖放到 Xcode 的项目导航器中。 启动 SDK 需要 AppCenter.framework。 如果缺少其他模块,则不起作用,并且你的应用不会编译。
    • 将显示一个对话框,确保已选中应用程序目标。 然后单击“完成”。

注释

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

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

4.启动 SDK

若要使用 App Center,必须选择加入要使用的模块。 默认情况下,不会启动任何模块,并且必须在启动 SDK 时调用每个模块。 如果要为扩展进行开发,请参阅 扩展入门页

4.1 添加导入语句

打开项目的 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])

如果有 Catalyst 应用程序,可以同时传递 iOS 和 macOS 的应用机密:

[MSACAppCenter start:@"ios={Your iOS App Secret};macos={Your macOS App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret:"ios={Your iOS App Secret};macos={Your macOS 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 方法(Swift 中为 start(withAppSecret:services:)),并包含 App Center Analytics 和 App Center 崩溃。

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

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

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

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

4.4 为沙盒应用添加 Internet 功能

如果你的应用正在使用应用沙盒,则需要设置权限来允许传出(客户端)连接,以使应用能够访问互联网。 Xcode 9 默认启用应用沙盒,但需要显式设置传出连接的功能。

在项目导航器中选择项目,选择“ 功能 ”选项卡,如果应用正在使用沙盒,请启用传出连接。


很好,你已经准备好在门户上可视化由 SDK 自动收集的分析和崩溃数据。

查看 App Center Analytics 文档App Center 崩溃文档 ,了解如何自定义和使用每个服务的高级功能。