HockeySDK에서 App Center Xamarin SDK로 마이그레이션
중요
Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.
HockeySDK 대신 App Center SDK를 사용하도록 애플리케이션을 업데이트하려는 경우 이 설명서를 따릅니다.
1. 라이브러리 업데이트
HockeySDK.Xamarin NuGet 패키지를 솔루션의 모든 프로젝트에서 App Center 패키지로 바꿉니다.
Mac용 Visual Studio
- Mac용 Visual Studio를 엽니다.
- 파일>열기를 클릭하고 솔루션을 선택합니다.
- 솔루션 탐색기에서 패키지 섹션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 추가...를 선택합니다.
- HockeySDK.Xamarin 패키지를 제거합니다.
- App Center를 검색하고 App Center 분석, App Center크래시 및 App Center 배포를 선택합니다.
- 패키지 추가를 클릭합니다.
Visual Studio for Windows
- Windows용 Visual Studio를 엽니다.
- 파일>열기를 클릭하고 솔루션을 선택합니다.
- 솔루션 탐색기에서 참조를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
- HockeySDK.Xamarin 패키지를 제거합니다.
- App Center를 검색하고 Microsoft.AppCenter.Analytics, Microsoft.AppCenter.Crashes 및 Microsoft.AppCenter.Distribute 패키지를 설치합니다.
패키지 관리자 콘솔
- Visual Studio에서 콘솔을 엽니다. 이렇게 하려면 도구>NuGet 패키지 관리자 패키지 관리자>콘솔을 선택합니다.
- Mac용 Visual Studio 작업하는 경우 NuGet 패키지 관리 확장을 설치했는지 확인합니다. 이를 위해 Visual Studio>확장을 선택하고 , NuGet 을 검색하고, 필요한 경우 설치합니다.
- 콘솔에 다음 명령을 입력합니다.
Uninstall-Package HockeySDK.Xamarin
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Install-Package Microsoft.AppCenter.Distribute
App Center SDK는 모듈식 접근 방식으로 설계되었으며 관심 있는 서비스만 통합할 수 있습니다. 각 SDK 모듈은 이 섹션에서 별도의 종속성으로 추가되어야 합니다. 다음 표의 동등성을 참조하세요.
HockeyApp 클래스 | App Center 모듈 |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2. SDK 설치 코드 업데이트
2.1 애플리케이션 식별자 변환
App Center SDK는 GUID(Globally Unique Identifier) 형식의 애플리케이션 식별자를 사용합니다. HockeyApp 앱 ID는 App Center에서 사용할 수 있지만 다른 형식으로 변환해야 합니다. 식별자를 변환하려면 4개의 하이픈을 추가하여 8-4-4-4-12 표현을 가져와야 합니다.
이전(HockeyApp): 00112233445566778899aabbccddeeff
이후(App Center): 00112233-4455-6677-8899-aabbccddeeff
2.2 애플리케이션 코드에서 SDK 초기화 바꾸기
이전 HockeyApp 등록 코드를 제거합니다.
Xamarin.Android - 프로젝트의 MainActivity.cs 열고 아래 줄을 제거합니다.
using HockeyApp.Android; ... CrashManager.Register(this, "APP_IDENTIFIER"); MetricsManager.Register(Application, "APP_IDENTIFIER"); UpdateManager.Register(this, "APP_IDENTIFIER");
Properties/AssemblyInfo.cs 다음 어셈블리 수준 특성을 제거합니다.
[assembly: MetaData ("net.hockeyapp.android.appIdentifier", Value="APP_IDENTIFIER")]
Xamarin.iOS - 프로젝트의 AppDelegate.cs 열고 아래 줄을 제거합니다.
using HockeyApp.iOS; ... var manager = BITHockeyManager.SharedHockeyManager; manager.Configure("APP_IDENTIFIER"); manager.StartManager(); manager.Authenticator.AuthenticateInstallation();
App Center SDK 시작
- 이 섹션의 뒷부분에 언급된 초기화 코드를 사용하려면 기존
using
문 아래에 다음 줄을 추가해야 합니다.
using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; using Microsoft.AppCenter.Distribute;
Xamarin.Android:
프로젝트의 MainActivity.cs 파일을 열고 메서드 내에 호출을
OnCreate()
추가Start()
합니다.AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
참고
애플리케이션에 백그라운드 서비스 또는 브로드캐스트 수신기, 내보낸 활동 또는 콘텐츠 공급자와 같은 여러 진입점이 있는 경우 대신 콜백에서
Application.OnCreate
시작하는AppCenter
것이 좋습니다.Xamarin.iOS:
프로젝트의
AppDelegate.cs
파일을 열고 메서드 내에 호출을 추가Start()
합니다FinishedLaunching()
.AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
참고
크래시를 사용하는 경우 UI/기본 스레드에서 이 메서드를 호출하고 메서드가
Start
반환될 때까지 백그라운드 작업을 시작하지 않아야 합니다. 그 이유는 크래시가 초기화되는 동안 다른 스레드에서 catch된 null 참조 예외가 네이티브 크래시를 트리거하고 catch 절을 무시할 수 있기 때문입니다. 메서드가AppCenter.Start
반환되면 null 참조 예외를 다시 시도/catch해도 안전합니다. 이 타이밍 문제의 원인에 대한 자세한 내용은 신호 및 타사 충돌 기자 문서에서 확인할 수 있습니다.Xamarin.Forms:
iOS, Android 및 UWP 플랫폼을 대상으로 하는 Xamarin.Forms 애플리케이션을 사용하려면 App Center 포털에서 각 플랫폼에 대해 하나씩 세 개의 애플리케이션을 만들어야 합니다. 3개의 앱을 만들면 각각 하나씩 세 개의 앱 비밀이 제공됩니다. 공유 또는 이식 가능한 프로젝트에서 프로젝트의 App.xaml.cs 파일(또는 에서
Xamarin.Forms.Application
상속되는 클래스)을 열고 메서드에 아래 메서드를OnStart()
추가합니다.AppCenter.Start("ios={Your App Secret};android={Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
중요
중괄호는 해당 콘텐츠를 실제 앱 비밀로 바꾸어야 한다는 것을 문서화하기 위한 것입니다. 호출에
Start
중괄호를 배치하지 마세요.참고
Android용 HockeyApp SDK를 사용하는 경우 App Center SDK 이후 HockeyApp SDK를 초기화해야 합니다. iOS 애플리케이션의 경우 앱에 둘 이상의 활성 크래시 보고 SDK가 있을 수 없습니다. 다른 SDK의 크래시 보고 기능을 사용하지 않도록 설정하여 App Center가 충돌을 catch할 수 있는지 확인합니다.
참고
iOS 및 Android에 대한 이전 섹션의 참고 사항은 Xamarin.Forms에도 적용됩니다. 이러한 설명이 애플리케이션에 적용되는 경우 플랫폼당 다른 위치에서 AppCenter를 초기화해야 할 수 있습니다.
- 이 섹션의 뒷부분에 언급된 초기화 코드를 사용하려면 기존
[iOS만 배포] 프로젝트의 Info.plist 파일 수정
- Info.plist 파일에 또는
CFBundleURLTypes
에 대한URL types
새 키를 추가합니다(Xcode가 Info.plist를 소스 코드로 표시하는 경우). - 첫 번째 자식 항목의 키를 또는
CFBundleURLSchemes
로URL Schemes
변경합니다. - URL 체계로 를 입력하고 를 앱의 앱 비밀로 바꿉
appcenter-${Your App Secret}
${Your App Secret}
니다.
이에 대한 자세한 내용은 App Center 배포 설명서를 참조하세요.
- Info.plist 파일에 또는
애플리케이션 전체에서 모든 HockeyApp API 호출을 대체합니다. 자세한 API 매핑 테이블은 아래에 제공됩니다.
3. 서비스 및 기능 비교
핵심
기능 | HockeyApp | App Center |
---|---|---|
로그 수준 조정 | SharedHockeyManager.LogLevel (iOS) 또는 HockeyLog.LogLevel (Android) |
AppCenter.LogLevel |
설치 식별 | iOS만 | AppCenter.GetInstallIdAsync |
사용자 식별 | 크래시 전용 | AppCenter.SetUserId |
분석
기능 | HockeyApp | App Center |
---|---|---|
세션 자동 추적 | 예, Android에서만 사용하지 않도록 설정할 수 있습니다. | 설명서(사용하지 않도록 설정할 수 없음) |
속성을 사용하여 사용자 지정 이벤트 | HockeyApp.MetricsManager.TrackEvent |
Analytics.TrackEvent |
런타임 시 서비스 사용 안 함 | MetricsManager.DisableUserMetrics (Android) 또는 SharedHockeyManager.DisableMetricsManager (iOS) |
Analytics.SetEnabledAsync |
크래시
기능 | HockeyApp | App Center |
---|---|---|
자동으로 크래시 보내기 | 기본적으로 사용 안 함 | 설명서(기본적으로 사용) |
테스트 크래시 생성 | CrashManager.GenerateTestCrash (iOS만 해당) |
Crashes.GenerateTestCrash |
추가 메타 데이터 연결 | Yes | 설명서(수신기에서 첨부할 수 있습니다.) |
사용자 사용자 지정 대화 상자 | Yes | 설명서(기본적으로 제공되지 않음) |
보내는 상태 대한 정보 가져오기 | Android만 | 문서 |
이전 크래시 정보 | CrashManager.GetLastCrashDetails (Android) 또는 CrashManager.LastSessionCrashDetails (iOS) |
Crashes.GetLastSessionCrashReportAsync |
런타임 시 서비스 사용 안 함 | SharedHockeyManager.DisableCrashManager (iOS만 해당) |
Crashes.SetEnabledAsync |
배포
참고
HockeyApp과 달리 App Center 앱 내 업데이트 기능은 App Center 배포 서비스를 사용하여 배포되는 릴리스 빌드(기본적으로)에서만 작동합니다. 앱이 프라이빗 메일 그룹을 사용하는 경우 App Center 배포 SDK가 추가된 후 처음으로 앱이 설치되고 열리면 브라우저가 열리고 사용자를 인증하고 앱 내 업데이트를 사용하도록 설정합니다. 런타임에 프라이빗 앱 내 업데이트 트랙을 설정하는 경우에도 이 브라우저가 열립니다. 이는 앱의 후속 릴리스에 대해 발생하지 않는 일회성 단계입니다. 자세한 내용은 App Center 배포 설명서를 참조하세요 .
기능 | HockeyApp | App Center |
---|---|---|
제한된 앱 내 업데이트 | LoginManager.VerifyLogin (Android) 또는 Authenticator.AuthenticateInstallation (iOS) |
Distribute.UpdateTrack |
런타임 시 서비스 사용 안 함 | UpdateManager.Unregister (Android) 또는 SharedHockeyManager.DisableUpdateManager (iOS) |
Distribute.SetEnabledAsync |
업데이트 대화 상자 사용자 지정 | Yes | Distribute.ReleaseAvailable |
피드백 서비스
피드백 서비스는 App Center에서 지원되지 않습니다. HockeyApp 피드백을 참조하세요.