重要
Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息。
App Center SDK 使用模块化体系结构,因此你可以使用任何或所有服务。
让我们开始在您的应用中设置 App Center .NET SDK,从而使用 App Center Analytics 和 App Center 崩溃报告。 若要将 App Center Distribute 添加到应用,请查看 App Center Distribute 的文档。
1.先决条件
在开始之前,请确保满足以下先决条件:
- 项目已在 Visual Studio 或 Visual Studio for Mac 中设置好。
- 你的目标是运行 iOS 11.0 或更高版本或 Android 5.0(API 级别 21)或更高版本的设备。
- 你未使用提供崩溃报告功能的任何其他 SDK。
支持的平台:
- MAUI iOS
- MAUI Android
- MAUI Windows
- .NET 6.0 macOS
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Forms (iOS、macOS Android、UWP 和 Windows 桌面应用程序)
1.1 MAUI
注释
目前,App Center 门户中没有 MAUI 平台。 请使用适用于 iOS 和 Android 和 UWP for Windows 的 Xamarin。
1.2 关于 Xamarin.Android
在 App Center 门户中创建应用,其中 Android 作为 OS,Xamarin 作为平台。
1.3 关于 Xamarin.iOS
在 App Center 门户中创建应用,使用 iOS 作为 OS, 将 Xamarin 作为平台。
1.4 关于 Xamarin.Mac
在 App Center 门户中创建应用, 其中 macOS 作为 OS,Xamarin 作为平台。
警告
存在一个已知问题,导致应用无法上传到 App Store。 请关注 github 上的进度。
1.5 关于 Xamarin.Forms (iOS、macOS、Android、UWP 和 Windows 桌面)
在 App Center 上创建 5 个应用 - 每个 OS 一个应用。
需要选择 Xamarin 作为 Android、iOS 和 macOS 应用程序的平台(UWP 和桌面应用程序没有 Xamarin 选项)。
对于 Windows 桌面 和 macOS 应用程序,必须配置项目才能与 Xamarin.Forms 平台兼容。
2.在 App Center 门户中创建应用以获取应用机密
如果已在 App Center 门户中创建了应用,则可以跳过此步骤。
- 前往 appcenter.ms。
- 注册或登录并点击门户右上角的蓝色按钮,显示 “添加新 ”,并从下拉菜单中选择“ 添加新应用 ”。
- 输入应用的名称和可选说明。
- 根据上述项目选择适当的 OS 和平台。
- 点击右下角的按钮,显示 “添加新应用”。
创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页面的右上角,单击 三个垂直点 并选择 Copy app secret
获取应用机密。
3.将 App Center SDK 添加到解决方案
可以使用 Visual Studio 或包管理器控制台集成 App Center SDK。
注释
App Center SDK 使用 强名称程序集 来与使用强名称签名的应用程序兼容。
Visual Studio for Mac
- 打开 Visual Studio。
- 单击“文件>打开”并选择解决方案。
- 在解决方案导航器中,右键单击 “包 ”部分,然后选择 “添加 NuGet 包...”。
- 搜索 App Center,然后选择 App Center Analytics 和 App Center 崩溃。
- 单击“ 添加包”。
Visual Studio for Windows
- 打开 Visual Studio。
- 单击“文件>打开”并选择解决方案。
- 在解决方案导航器中,右键单击 “引用 ”并选择“ 管理 NuGet 包”。
- 搜索 App Center,并安装 Microsoft.AppCenter.Analytics 和 Microsoft.AppCenter.Crashes 包。
包管理器控制台
- 在 Visual Studio 中打开控制台。 为此,请选择“工具>NuGet 包管理器>控制台”。
- 如果在 Visual Studio for Mac 中工作,请确保已安装 NuGet 包管理扩展。 为此,请选择 Visual Studio>扩展,根据需要搜索 NuGet 并安装。
- 在控制台中键入以下命令:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
在应用程序中集成 SDK 后,可以启动 SDK 并使用 App Center 服务。
注释
如果在可移植项目(如 Xamarin.Forms)中使用 App Center SDK,则必须在每个项目中安装包:可移植项目、Android 和 iOS 包。 为此,应打开每个子项目,并按照 Visual Studio for Mac 或 Visual Studio for Windows 部分中所述的相应步骤进行操作。
4.启动 SDK
若要使用 App Center,必须选择加入要使用的模块。 默认情况下,不会启动任何模块,并且必须在启动 SDK 时显式调用每个模块。
4.1 添加 using 语句
在以下文件中添加相应的命名空间:
-
MAUI 和 Xamarin.Forms -
App.xaml.cs
-
Xamarin.iOS 和 Xamarin.Mac -
AppDelegate.cs
-
Xamarin.Android -
MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
4.2 添加 Start()
方法
4.2.1 MAUI 和 Xamarin.Forms
需要在 App Center 门户上为每个平台创建不同的应用程序。 对于每个应用,你将有不同的应用机密。 打开项目的 App.xaml.cs 文件,并在构造函数中添加以下行(或在 OnStart()
Xamarin.Forms 的方法中)。
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics), typeof(Crashes));
如果需要单独启动 App Center 服务,应:
- 配置或启动应用密钥。
- 如果可以多次调用代码,请检查是否已配置 App Center。
- 在不使用应用机密的情况下启动所需的服务。
AppCenter.Configure("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}");
if (AppCenter.Configured)
{
AppCenter.Start(typeof(Analytics));
AppCenter.Start(typeof(Crashes));
}
4.2.2 Xamarin.Android
注释
如果使用适用于 Android 的 HockeyApp SDK,请确保在 App Center SDK 之后 初始化 HockeyApp SDK。
打开项目的 MainActivity.cs 文件,并在 Start()
方法中添加 OnCreate()
调用
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
注释
如果您的应用程序具有后台服务或多个入口点,例如广播接收器、导出的活动或内容提供程序,建议在AppCenter
回调中启动Application.OnCreate
。
4.2.3 Xamarin.iOS 和 Xamarin.Mac
注释
应用中不能有多个活动崩溃报告 SDK。 禁用其他 SDK 的崩溃报告功能,以确保 App Center 能够捕获崩溃。
打开项目的 AppDelegate.cs
文件,并在 Start()
方法中添加 FinishedLaunching()
调用
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
注释
如果使用崩溃模块,则必须在 UI 主线程中调用此方法,并避免在该方法返回之前启动后台任务。
从另一个线程捕获的任何 null 引用异常在 Crashes 初始化时,可能会触发系统崩溃并忽略抓取子句。
AppCenter.Start
方法返回后,可以安全地再次尝试/捕获 null 引用异常。
可以在 Signals 和第三方崩溃报告工具 文章中了解更多关于此计时问题的原因。
警告
不建议在源代码中嵌入应用机密。
重要
大括号用于显示实际应用机密的位置,不要在 Start
调用中放置大括号。
注释
对于 iOS 应用程序,在你的应用中无法同时使用多个活动的崩溃报告软件开发工具包(SDK)。 禁用其他 SDK 的崩溃报告功能,以确保 App Center 能够捕获崩溃。
4.3 将占位符替换为应用机密
请确保将 {Your App Secret}
文本替换为您应用程序中的实际值。 可以在 App Center 门户的 “入门 ”页面或 “设置” 页上找到应用机密。
“入门”页包含上述代码示例,其中包含应用机密,可以复制粘贴整个示例。
上面的示例演示如何使用 Start()
方法,并包含 App Center Analytics 和 App Center Crashes。
如果不想使用这两个服务之一,请从上述方法调用中删除相应的参数。
除非在 start 方法中显式指定每个模块作为参数,否则不能使用该 App Center 服务。 此外, Start()
API 只能在应用的生命周期中使用一次 – 所有其他调用都会将警告记录到控制台,并且只有第一次调用中包含的模块可用。
例如 - 如果要加入 App Center Analytics,应按如下所示修改调用 Start()
:
4.3.1 MAUI 和 Xamarin.Forms
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics));
4.3.2 Xamarin Native
AppCenter.Start("{Your App Secret}", typeof(Analytics));
很好,你已经准备好在门户上可视化由 SDK 自动收集的分析和崩溃数据。
查看 App Center Analytics 和 App Center 崩溃 的文档,了解如何自定义和使用这两个服务的更高级功能。
若要了解如何开始使用应用内更新,请阅读 App Center Distribute 的文档。
注释
使用 Xamarin Forms 中的可移植 API,你将看到来自所有模块的 API,但并非所有这些 API 在 UWP 和 Windows 桌面 平台上都受支持,在 UWP 和 Windows 桌面 应用程序上运行时不执行任何作。 特别是 UWP 和 Windows 桌面不支持以下模块: 分发。 具有返回类型的任何方法在 UWP 和 Windows 桌面应用程序上将返回 null
(对于对象)、0
(对于数字)或者 false
(对于布尔值)。
5. 备份规则 (仅限 Android)
注释
面向 Android 6.0(API 级别 23)或更高版本的应用会自动启用自动备份。
注释
如果已有包含备份规则的自定义文件,请切换到第三步。
如果使用自动备份来避免获取有关设备的错误信息,请执行以下步骤:
5.1. 对于 Android 11(API 级别 30)或更低版本。
- 在 Resources/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:fullBackupContent
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:fullBackupContent="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</full-backup-content>
5.2. 对于 Android 12(API 级别 31)或更高版本。
- 在 Resources/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:dataExtractionRules
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:dataExtractionRules="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
<cloud-backup>
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</cloud-backup>
<device-transfer>
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</device-transfer>
</data-extraction-rules>