從 HockeySDK 移轉至 App Center Xamarin SDK

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到完全淘汰為止,但有數個建議的替代方案可以考慮移轉至。

深入瞭解支持時程表和替代方案。

如果您想要更新應用程式以使用 App Center SDK,而不是 HockeySDK,請遵循此檔。

1.更新連結庫

HockeySDK.Xamarin NuGet 套件取代為您解決方案中所有專案中的 App Center 套件。

Visual Studio for Mac

  • 開啟 Visual Studio for Mac。
  • 按兩下 [檔案>開啟 ],然後選擇您的解決方案。
  • 在方案導覽器中,以滑鼠右鍵按兩下 [ 套件 ] 區段,然後選擇 [ 新增 NuGet 套件...]。
  • 拿掉 HockeySDK.Xamarin 套件。
  • 搜尋 App Center,然後選取 [App Center 分析]、[App Center 當機] 和 [App Center 散發]。
  • 按兩下 [新增套件]。

適用於 Windows 的 Visual Studio

  • 開啟適用於 Windows 的 [Visual Studio]。
  • 按兩下 [檔案>開啟 ],然後選擇您的解決方案。
  • 在方案導覽器中,以滑鼠右鍵按兩下 [ 參考] ,然後選擇 [ 管理 NuGet 套件]。
  • 拿掉 HockeySDK.Xamarin 套件。
  • 搜尋 App Center,並安裝 Microsoft.AppCenter.AnalyticsMicrosoft.AppCenter.CrashesMicrosoft.AppCenter.Distribute 套件。

套件管理器主控台

  • Visual Studio 中開啟控制台。 若要這樣做,請選擇 [工具>][NuGet 套件管理員>套件管理員控制台]。
  • 如果您正在 Visual Studio for Mac,請確定您已安裝 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) 格式的應用程式識別碼。 您的 HockeyApp 應用程式識別碼可由 App Center 使用,但您需要將其轉換成不同的格式。 若要轉換標識碼,您必須新增四個連字元,以取得 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 檔案,並在 方法內FinishedLaunching()新增 Start() 呼叫

    AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
    

    注意

    如果使用當機,您必須在UI/主線程中呼叫這個方法,並避免在方法傳回之前 Start 啟動背景工作。 原因是當機初始化時,從另一個線程攔截到任何 Null 參考例外狀況可能會觸發原生損毀並忽略 catch 子句。 AppCenter.Start方法傳回之後,可以放心地再次嘗試/攔截 Null 參考例外狀況。 您可以在 Signals 和第三方損毀報告 程式文章中深入瞭解此計時問題的原因。

    Xamarin.Forms

    若要使用以 iOS、Android 和 UWP 平臺為目標的 Xamarin.Forms 應用程式,您必須在 App Center 入口網站中建立三個應用程式-每個平臺各一個應用程式。 建立三個應用程式會提供三個應用程式秘密,每個應用程式各有一個。 開啟專案的 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 可以攔截損毀。

    注意

    前幾節中有關 iOS 和 Android 的附注也適用於 Xamarin.Forms。 如果這些備註適用於您的應用程式,您可能需要在每個平臺的不同位置初始化 AppCenter。

  3. [僅適用於散發 iOS]修改專案的 Info.plist 檔案

    • 如果 Xcode 將 Info.plist 顯示為原始程式碼) ,請在 Info.plist 檔案中新增 或 CFBundleURLTypes 的新索引鍵 URL types (。
    • 將第一個子項目的索引鍵變更為 URL SchemesCFBundleURLSchemes
    • 輸入 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新增後第一次安裝並開啟應用程式後,瀏覽器會開啟以驗證使用者並啟用應用程式內更新。 如果您在運行時間設定私人應用程式內更新追蹤,此瀏覽器也會開啟。 這是應用程式後續版本不會發生的 ONE-TIME 步驟。 如需詳細資訊,請參閱 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 意見反應