重要
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 门户中创建了应用,则可以跳过此步骤。
- 前往 appcenter.ms。
- 注册或登录并点击门户右上角的蓝色按钮,显示 “添加新 ”,并从下拉菜单中选择“ 添加新应用 ”。
- 输入应用的名称和可选说明。
- 选择 macOS 作为 OS, 将 Objective-C/Swift 选为平台。
- 点击右下角的按钮,显示 “添加新应用”。
创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页的右上角,单击 三个垂直点 并选择 Copy app secret
获取应用机密。
3.添加 App Center SDK 模块
可通过 Cocoapods、 Carthage、 Swift 包管理器 或手动将二进制文件添加到项目中,将适用于 macOS 的 App Center SDK 添加到应用。
注释
在 4.0.0
版本中引入了 App Center 的重大变更。 请按照“迁移到 App Center SDK 4.0.0 及更高”部分的指引,将 App Center 从之前的版本迁移。
3.1 通过 Cocoapods 集成
将以下依赖项添加到你的
podfile
中,以将 App Center Analytics 和 App Center 崩溃报告功能添加到应用中。 这将拉取以下框架: AppCenter、 AppCenterAnalytics 和 AppCenterCrashes。 可以改为指定要在应用中使用的服务。 每个服务都有自己的子规范,它们都依赖于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'
运行
pod install
以安装新定义的 Pod 并打开项目的.xcworkspace
。
现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。
3.2 通过 Carthage 集成
下面是有关如何使用 Carthage 版本 0.30 或更高版本在 Xcode 项目中集成 App Center SDK 的步骤,这是一个分散的依赖项管理器,用于生成依赖项并提供二进制框架。
将以下依赖项添加到应用中
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
运行
carthage update --platform macOS
。 这会将依赖项提取到 Carthage/Checkouts 文件夹中,然后生成每个框架。打开应用程序目标的 “常规 设置”选项卡。将 AppCenter.framework、 AppCenterAnalytics.framework 和 AppCenterCrashes.framework 文件从 Carthage/Build/macOS 文件夹拖放到 Xcode 的项目导航器中。 启动 SDK 需要 AppCenter.framework 。 如果未将它添加到项目,其他模块将不起作用,并且你的应用不会编译。
将显示一个对话框,确保已选中应用程序目标。 然后单击“完成”。
注释
如果在
carthage copy-frameworks
使用,由于应用中心 SDK 是以静态框架的形式提供的,因此您不应在该处添加它们。
现在,你已将框架集成到应用程序中,接下来可以启动 SDK 并使用 App Center 服务。
3.3 通过 Swift 包管理器集成
- 在 Xcode 菜单中,单击“ 文件 > Swift 包 > 添加包依赖项”。
- 在出现的对话框中,输入存储库 URL: https://github.com/microsoft/appcenter-sdk-apple.git。
- 在 版本中,选择 上至下一个主要版本,并采用默认选项。
- 在 “程序包产品 ”列中选择所需的模块。
现在,你已将框架集成到应用程序中,接下来可以启动 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。 这些框架可以像往常一样进行集成,具体如下所示。
下载以 zip 文件的形式提供的 App Center SDK 框架。
解压缩文件,你将看到一个名为 AppCenter-SDK-Apple 的文件夹,其中包含每个平台文件夹中每个 App Center 服务的不同框架。 项目中需要调用
AppCenter
的框架,因为它包含在不同模块之间共享的代码。[可选]为第三方库创建子目录。
- 第三方库通常位于子目录中(通常称为 供应商),因此,如果项目不使用库的子目录,请立即创建 供应商 子目录。
- 在 Xcode 项目中创建一个名为 Vendor 的组,以模拟磁盘上的文件结构。
在 Finder 中打开解压缩的 AppCenter-SDK-Apple 文件夹,并将该文件夹复制到项目的文件夹,位于所需位置。 该文件夹包含 App Center SDK 支持的其他平台的子文件夹中的框架,因此可能需要删除不需要的子文件夹。
将 SDK 框架添加到 Xcode 中的项目:
- 确保项目导航器可见(⌘+1)。
- 现在,将 AppCenter.framework、 AppCenterAnalytics.framework 和 AppCenterCrashes.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 服务,应:
- 配置或启动应用密钥。
- 如果可以多次调用代码,请检查是否已配置 App Center。
- 在不使用应用机密的情况下启动所需的服务。
[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:withServices
(start(withAppSecret:services:)
for Swift)API 只能在应用的生命周期中使用一次– 所有其他调用都会将警告记录到控制台,并且只有第一次调用中包含的模块可用。
例如 - 如果要加入 App Center Analytics,应按如下所示修改 start:withServices
(start(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 崩溃文档 ,了解如何自定义和使用每个服务的高级功能。