這很重要
Visual Studio App Center 於 2025 年 3 月 31 日淘汰,但分析和診斷功能除外,這些功能將持續支援到 2026 年 6 月 30 日。 瞭解更多資訊。
收集冗長的日誌
若要取得如何將記錄層級調整為 VERBOSE的指示,請參閱 其他 API 一節。
您可以在 [>偵錯Windows>輸出] 視窗中找到詳細信息記錄。
安裝期間的問題
- 針對 Xamarin.Forms 應用程式,請確定套件會安裝在參考任何連結庫的所有專案中。 否則您會看到錯誤訊息。
- 如果您在建置 Xamarin.iOS 時看到此錯誤:
MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001)您必須將 Xamarin.iOS 元件更新為 10.4.0.128 版或更新版本。 - 如果您在建置 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 版或更新版本。 - 在控制台中,尋找訊息為「App Center SDK 已成功設定」的 Assert 日誌記錄。 這會驗證 SDK 是否已順利設定。
分析數據不會顯示在入口網站中
請確定您已正確整合 SDK 模組。
請確定包含正確的應用程式密鑰以及
Start()方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 [用戶入門] 頁面,以複製確切Start()的程序代碼。如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的 Verbose,SDK 會在控制台中列印記錄。 在您啟動 SDK 之前,請先呼叫下列 API。
AppCenter.LogLevel = LogLevel.Verbose;檢查記錄顯示「App Center SDK 已成功設定」(在資訊記錄層級中),然後檢查您是否看到 HTTPS 要求記錄。
請確定您的裝置已上線。
有時,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果情況如此,請稍候一段時間。
若要檢查 App Center 後端是否收到您的數據,請移至 Analytics 服務中的 [記錄流程] 區段。 事件傳送後應立即出現。
當機未顯示在入口網站中
請確定您已正確整合 SDK 模組。
請確定包含正確的應用程式密鑰以及
Start()方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 [用戶入門] 頁面,以複製確切Start()的程序代碼。當機後重新啟動應用程式。 App Center 損毀只會在重新啟動後轉送損毀記錄檔。 此外,如果您附加調試程式,在 Xamarin.iOS 和 Xamarin.Mac 上,SDK 將不會儲存任何當機記錄檔。 當您當機 iOS 應用程式時,請確定除錯程式未附加。 在 Xamarin.Android 上,儘管附加調試程式時可能會當機,但在遇到未處理的例外狀況後,您仍需要繼續執行。
如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的 Verbose,SDK 會在控制台中列印記錄。 在您啟動 SDK 之前,請先呼叫下列 API。
AppCenter.LogLevel = LogLevel.Verbose;檢查記錄顯示「App Center SDK 已成功設定」(在資訊記錄層級中),然後檢查您是否看到 HTTPS 要求記錄。
請勿使用任何其他提供崩潰報告功能的程式庫,例如 Xamarin Insights 或 HockeyApp。 您只能整合一個當機報告 SDK。
請確定您的裝置已上線。
有時,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果情況如此,請稍候一段時間。
如果您想要檢查 SDK 是否偵測到下一個應用程式啟動時當機,您可以呼叫 API 來檢查應用程式是否在最後一個工作階段中當機,並顯示警示。 或者,您可以擴充當機回呼,以查看它是否已成功傳送至伺服器。
若要檢查 App Center 後端是否收到當機,請移至 Analytics 服務中的 [記錄流程] 區段。 您的當機一旦被傳送,就會出現在那裡。
發布和應用內更新會封鎖我的自動化使用者介面測試
如果您正在執行自動化UI測試,啟用的應用程式內更新將會封鎖您的自動化UI測試,因為它們會嘗試對App Center後端進行驗證。 建議您不要為 UI 測試啟用 App Center Distribute。
新增 DistributePlay 之後,Google Play 會拒絕應用程式
Google Play 會拒絕使用 Distribute 模組的應用程式,因為它包含應用程式內更新實作。 為了避免這種情況,App Center SDK 有 DistributePlay 模組,其中包含主要模組的存根。 它會以模擬Distribute API 的存根組件取代主要組件。 用戶端應用程式中不需要其他變更。
DistributePlay沒有任何應用程式內更新相關的程式碼。
如果在將 Distribute 模組替換為 DistributePlay 之後,您的應用程式仍然被拒絕,請按照以下步驟確認 Distribute 模組是否已正確替換:
- 請確定您在 Google Play 控制台中,針對所有發布群組的所有版本,將
Distribute替換為DistributePlay。 - 如果您使用
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被曝露,最大的風險是將錯誤資料傳送至您的應用程式,但是不會影響資料的安全性。
若要擷取任何敏感數據,您必須提供用戶端上產生的應用程式/使用者 令牌。 無法讓客戶端上的數據完全安全。
您可以使用環境變數將應用程式秘密插入程式碼,以改善應用程式的安全性。 如此一來,您的程式代碼中就看不到秘密。