중요합니다
Visual Studio App Center는 2026년 6월 30일까지 계속 지원되는 분석 및 진단 기능을 제외하고 2025년 3월 31일에 사용 중지되었습니다. 자세히 알아보기.
App Center SDK는 모든 또는 모든 서비스를 사용할 수 있도록 모듈식 아키텍처를 사용합니다.
App Center Analytics 및 App Center 크래시를 사용하도록 앱에서 App Center .NET SDK를 설정하는 방법을 시작해 보겠습니다. 앱에 App Center 배포를 추가하려면 App Center 배포에 대한 설명서를 살펴보세요.
1. 사전 요구 사항
시작하기 전에 다음 필수 조건을 충족시키는지 확인합니다.
- 프로젝트가 Visual Studio 또는 Mac용 Visual Studio에서 설정됩니다.
- 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 Desktop 애플리케이션)
1.1 MAUI
비고
현재 App Center 포털에는 MAUI 플랫폼이 없습니다. iOS 및 Android용 Xamarin 및 Windows용 UWP 를 사용하세요.
1.2 Xamarin.Android 정보
Android를 OS로, Xamarin을 플랫폼으로 사용하여 App Center 포털에서 앱을 만듭니다.
1.3 Xamarin.iOS 정보
iOS를 OS로, Xamarin을 플랫폼으로 사용하여 App Center 포털에서 앱을 만듭니다.
1.4 Xamarin.Mac 정보
macOS를 OS로, Xamarin을 플랫폼으로 사용하여 App Center 포털에서 앱을 만듭니다.
경고
앱이 앱 스토어에 업로드되지 않도록 하는 알려진 문제가 있습니다. github의 진행률을 따릅니다.
1.5 Xamarin.Forms 정보(iOS, macOS, Android, UWP 및 Windows Desktop)
App Center에서 각 OS에 대해 하나씩 5개의 앱을 만듭니다.
Android, iOS 및 macOS 애플리케이션용 플랫폼으로 Xamarin 을 선택해야 합니다(UWP 및 데스크톱 애플리케이션에는 Xamarin 옵션이 없습니다).
Windows 데스크톱 및 macOS 애플리케이션의 경우 Xamarin.Forms 플랫폼과의 호환성을 위해 프로젝트를 구성해야 합니다.
2. App Center 포털에서 앱을 만들어 앱 비밀을 가져옵니다.
App Center 포털에서 앱을 이미 만든 경우 이 단계를 건너뛸 수 있습니다.
- appcenter.ms로 이동하세요.
- 등록하거나 로그인하고 포털의 오른쪽 위 모서리에 있는 파란색 단추를 누릅니다. 즉 , 새로 추가 를 선택하고 드롭다운 메뉴에서 새 앱 추가 를 선택합니다.
- 앱의 이름 및 선택적 설명을 입력합니다.
- 위에서 설명한 대로 프로젝트에 따라 적절한 OS 및 플랫폼을 선택합니다.
- 새 앱 추가라는 오른쪽 아래 단추를 누릅니다.
앱을 만든 후에는 App Center 포털의 설정 페이지에서 앱 비밀을 가져올 수 있습니다.
설정 페이지의 오른쪽 위 모서리에서 세로 점 세 개를 클릭한 후 Copy app secret
을/를 선택하여 앱 비밀을 가져옵니다.
3. 솔루션에 App Center SDK 추가
App Center SDK는 Visual Studio 또는 패키지 관리자 콘솔을 사용하여 통합할 수 있습니다.
비고
App Center SDK는 강력한 이름의 기호를 사용하는 애플리케이션과의 호환성을 위해 강력한 이름의 어셈블리 를 사용합니다.
Mac용 Visual Studio
- Visual Studio를 엽니다.
- 파일>열기를 클릭하고 솔루션을 선택합니다.
- 솔루션 탐색기에서 패키지 섹션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 추가...를 선택합니다.
- App Center를 검색하고 App Center 분석 및 App Center 크래시를 선택합니다.
- 패키지 추가를 클릭합니다.
Windows용 Visual Studio
- Visual Studio를 엽니다.
- 파일>열기를 클릭하고 솔루션을 선택합니다.
- 솔루션 탐색기에서 참조를 마우스 오른쪽 단추 로 클릭하고 NuGet 패키지 관리를 선택합니다.
- App Center를 검색하고 Microsoft.AppCenter.Analytics 및 Microsoft.AppCenter.Crashes 패키지를 설치합니다.
패키지 관리자 콘솔
- Visual Studio에서 콘솔을 엽니다. 이렇게 하려면 도구>NuGet 패키지 관리자 패키지 관리자>콘솔을 선택합니다.
- Mac용 Visual Studio에서 작업하는 경우 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 패키지를 설치해야 합니다. 이렇게 하려면 각 하위 프로젝트를 열고 Mac용 Visual Studio 또는 Windows용 Visual Studio 섹션에 설명된 해당 단계를 따라야 합니다.
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 파일을 열고 생성자(또는 Xamarin.Forms 메서드)에 OnStart()
다음 줄을 추가합니다.
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/주 스레드에서 이 메서드를 호출하고 메서드가 반환될 때까지 Start
백그라운드 작업을 시작하지 않아야 합니다.
크래시를 초기화하는 동안 다른 스레드에서 포착된 null 참조 예외는 네이티브 크래시를 유발하고 catch 절을 무시하는 경우가 있을 수 있습니다.
메서드가 AppCenter.Start
반환되면 null 참조 예외를 다시 시도/catch해도 안전합니다.
시그널 및 타사 충돌 보고서 문서에서 이 타이밍 문제의 원인에 대해 자세히 읽을 수 있습니다.
경고
소스 코드에 앱 비밀을 포함하지 않는 것이 좋습니다.
중요합니다
중괄호는 실제 앱 비밀을 배치할 위치를 보여 줍니다. 호출에 Start
중괄호를 넣지 마세요.
비고
iOS 애플리케이션의 경우 앱에 둘 이상의 활성 크래시 보고 SDK가 있을 수 없습니다. 다른 SDK의 충돌 보고 기능을 사용하지 않도록 설정하여 App Center가 충돌을 포착할 수 있는지 확인합니다.
4.3 자리 표시자를 앱 비밀로 바꾸기
애플리케이션에 맞는 실제 값으로 {Your App Secret}
텍스트를 바꾸어야 합니다. 앱 비밀은 App Center 포털의 시작 페이지 또는 설정 페이지에서 찾을 수 있습니다.
시작 페이지에는 앱 비밀이 포함된 위의 코드 샘플이 포함되어 있으며 전체 샘플을 복사하여 붙여넣을 수 있습니다.
위의 예제에서는 이 메서드를 사용하고 Start()
App Center Analytics 및 App Center 크래시를 모두 포함하는 방법을 보여 줍니다.
두 서비스 중 하나를 사용하지 않으려면 위의 메서드 호출에서 해당 매개 변수를 제거합니다.
시작 메서드에서 각 모듈을 매개 변수로 명시적으로 지정하지 않는 한 해당 App Center 서비스를 사용할 수 없습니다. 또한 API는 Start()
앱의 수명 주기에서 한 번만 사용할 수 있습니다. 다른 모든 호출은 콘솔에 경고를 기록하고 첫 번째 호출에 포함된 모듈만 사용할 수 있습니다.
예를 들어 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 배포 설명서를 참조하세요.
비고
Xamarin Forms의 이식 가능한 API를 사용하면 모든 모듈의 API가 표시되지만 UWP 및 Windows 데스크톱 플랫폼에서 모든 API가 지원되지는 않으며 UWP 및 Windows 데스크톱 애플리케이션에서 실행할 때 아무 작업도 수행하지 않습니다. 특히 UWP 및 Windows Desktop은 다음 모듈인 배포를 지원하지 않습니다. 반환 형식이 있는 모든 메서드는 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>