다음을 통해 공유


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.CrashesMicrosoft.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 초기화 바꾸기

  1. 이전 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();
      
  2. 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를 초기화해야 할 수 있습니다.

  3. [iOS만 배포] 프로젝트의 Info.plist 파일 수정

    • Info.plist 파일에 또는 CFBundleURLTypes 에 대한 URL types 새 키를 추가합니다(Xcode가 Info.plist를 소스 코드로 표시하는 경우).
    • 첫 번째 자식 항목의 키를 또는 CFBundleURLSchemesURL Schemes 변경합니다.
    • URL 체계로 를 입력하고 를 앱의 앱 비밀로 바꿉 appcenter-${Your App Secret}${Your App Secret} 니다.

    이에 대한 자세한 내용은 App Center 배포 설명서를 참조하세요.

  4. 애플리케이션 전체에서 모든 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 피드백을 참조하세요.