共用方式為


MAUI 和 Xamarin SDK 疑難解答

重要

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

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

收集詳細信息記錄

若要取得如何將記錄層級調整為 VERBOSE的指示,請參閱 其他 API 一 節。
您可以在 [>錯Windows>輸出] 視窗中找到詳細信息記錄。

安裝期間的問題

  1. 針對 Xamarin.Forms 應用程式,請確定套件已安裝在參考任何連結庫的所有專案中。 否則您會看到錯誤。
  2. 如果您在建置 Xamarin.iOS 時看到此錯誤: MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001) 您必須將 Xamarin.iOS 元件更新為 10.4.0.128 版或更新版本。
  3. 如果您在建置 Xamarin.iOS 時看到此錯誤: MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210) 或類似的錯誤 (MT5211 程式代碼,並提及 App Center) 類似的訊息,請務必在使用特定服務的 API 之前呼叫 AppCenter.Start 。 如果您呼叫 Start 但發生此問題,您必須將 Xamarin.iOS 元件更新為 10.4.0.128 版或更新版本。
  4. 在控制台中,尋找具有訊息的 Assert 記錄檔 -「App Center SDK 已成功設定」。 這會驗證 SDK 是否已順利設定。

分析數據不會顯示在入口網站中

  1. 請確定您已正確整合 SDK 模組。

  2. 請確定包含正確的應用程式密碼以及 Start() 方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 [使用者入門] 頁面,以複製確切Start()的程序代碼。

  3. 如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的詳細資訊 ,SDK 會在控制台中列印記錄。 在您啟動 SDK 之前,請先呼叫下列 API。

    AppCenter.LogLevel = LogLevel.Verbose;
    

    請檢查 [信息記錄層級]) 中的 [App Center SDK 已順利設定] (記錄,然後檢查您是否看到 HTTPS 要求記錄。

  4. 請確定您的裝置已上線。

  5. 有時候,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果是這種情況,請稍候一段時間。

  6. 若要檢查 App Center 後端是否收到您的數據,請移至 Analytics 服務中的記錄流程區段。 一旦傳送事件,您的事件就應該會出現。

入口網站中未顯示當機

  1. 請確定您已正確整合 SDK 模組。

  2. 請確定包含正確的應用程式密碼以及 Start() 方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 [使用者入門] 頁面,以複製確切Start()的程序代碼。

  3. 當機後重新啟動應用程式。 App Center 當機只會在重新啟動後轉送損毀記錄檔。 此外,當您附加調試程式時,在 Xamarin.iOS 和 Xamarin.Mac 上,SDK 將不會儲存任何損毀記錄檔。 當您損毀 iOS 應用程式時,請確定調試程式未附加。 在 Xamarin.Android 上,您可以在附加調試程式時當機,但必須在中斷未處理的例外狀況之後繼續執行。

  4. 如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的詳細資訊 ,SDK 會在控制台中列印記錄。 在您啟動 SDK 之前,請先呼叫下列 API。

    AppCenter.LogLevel = LogLevel.Verbose;
    

    請檢查 [信息記錄層級]) 中的 [App Center SDK 已順利設定] (記錄,然後檢查您是否看到 HTTPS 要求記錄。

  5. 請勿使用任何其他提供損毀報告功能的連結庫,例如 Xamarin Insights 或 HockeyApp。 您只能整合一個損毀報告 SDK。

  6. 請確定您的裝置已上線。

  7. 有時候,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果是這種情況,請稍候一段時間。

  8. 如果您想要檢查 SDK 是否偵測到下一個應用程式啟動時當機,您可以呼叫 API 來檢查應用程式是否在最後一個工作階段中當機,並顯示警示。 或者,您可以擴充損毀回呼,以查看它是否已成功傳送至伺服器。

  9. 若要檢查 App Center 後端是否收到當機,請移至 Analytics 服務中的 [記錄流程] 區段。 當系統傳送時,您的當機應該會出現在該處。

散發和應用程式內更新封鎖我的自動化UI測試

如果您執行自動化 UI 測試,啟用的應用程式內更新將會封鎖自動化 UI 測試,因為它們會嘗試向 App Center 後端進行驗證。 建議您不要為您的UI測試啟用App Center散發。

新增 DistributePlay 之後,Google Play 會拒絕應用程式

Google Play 會拒絕使用 Distribute 模組的應用程式,因為它包含應用程式內更新實作。 為了避免這種情況,App Center SDK 有 DistributePlay 模組,其中包含主要模組的存根。 它會以模擬 API 的 stubbed 元件取代主要元件 Distribute 。 用戶端應用程式中不需要任何額外的變更。 DistributePlay沒有任何應用程式內更新相關程序代碼。 如果在將 Distribute 模組取代為 DistributePlay 您的應用程式仍然遭到拒絕之後,請遵循下列步驟來確認 Distribute 模組已正確取代:

  • 請確定您在 Google Play 控制台中所有發布群組的所有版本中都已取代DistributeDistributePlay為 。
  • 如果您使用 Xamarin.Forms ,請確定您已將 DistributePlay 模組新增至共用和 Xamarin.Android 專案。
  • 確認您的輸出檔案未包含 Microsoft.AppCenter.Distribute.Android.Bindings.dll 元件。 您可以使用 APK 分析器 來檢查它。

控制台中的訊息,指出無法在iOS上開啟資料庫

App Center 會先使用 SQLite 來保存記錄,再傳送至後端。 如果您要將應用程式與自己的 SQLite 連結庫結合,而不是使用 OS 所提供的連結庫,您可能會在控制台 [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database 中看到類似這樣的錯誤,而且不會在後端看到任何分析或當機資訊。 將 SDK 更新為 0.16.0 版或更新版本。

保護App Center秘密值

app_secret是應用程式的標識碼,必須知道流量要套用到哪個應用程式,而且無法用來擷取或編輯現有的數據。 如果公開, app_secret 最大的風險是將不正確的數據傳送至您的應用程式,但不會影響數據的安全性。

若要擷取任何敏感數據,您必須提供在用戶端產生的應用程式/使用者 令牌。 沒有任何方法可讓用戶端上的數據完全安全。

您可以使用環境變數將應用程式秘密插入程式碼,以改善應用程式的安全性。 如此一來,程序代碼中看不到秘密。