簡體   English   中英

無法在 Xamarin.iOS 應用上啟用 AppCenter.Crashes

[英]Cannot enable AppCenter.Crashes on Xamarin.iOS app

嘗試在現有 Xamarin.iOS 應用程序上使用新 AppCenter,我在 AppCenter.Crashes API 上遇到了一些問題。

我遵循入門部分並在我的 AppDelegate.cs 中添加以下代碼:

using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

// ...
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    //...
    // App Center
    AppCenter.Start("xxxxxxx-xxxx-xxxx-xxxx", typeof(Analytics), typeof(Crashes));

    return true;
}

我還安裝了相應的 NuGet 包(這里是我的 packages.config 中的相應行)

<package id="Microsoft.AppCenter" version="1.5.0" targetFramework="xamarinios10" />
<package id="Microsoft.AppCenter.Analytics" version="1.5.0" targetFramework="xamarinios10" />
<package id="Microsoft.AppCenter.Crashes" version="1.5.0" targetFramework="xamarinios10" />

請注意,如果我禁用 AppCenter.Crashes 模塊:

AppCenter.Start("xxxxxxx-xxxx-xxxx-xxxx", typeof(Analytics));

一切都很好(我可以在應用中心后端看到分析)

但是啟用 AppCenter.Crashes 模塊后,我的應用程序崩潰並在控制台中顯示以下消息:

11:24:53.521334 +0100   MyApp.iOS   [AppCenter] VERBOSE: +[MSAppDelegateForwarder addTraceBlock:]_block_invoke_2/101 Start buffering traces.
11:24:53.521381 +0100   MyApp.iOS   [AppCenter] DEBUG: +[MSAppDelegateForwarder load]_block_invoke/48 Application delegate forwarder is enabled. It may use swizzling.
11:24:53.521587 +0100   MyApp.iOS   [AppCenter] VERBOSE: +[MSAppDelegateForwarder flushTraceBuffer]/398 Stop buffering traces, flushed.
11:24:53.524550 +0100   MyApp.iOS   [AppCenterXamarin] DEBUG: +[MSWrapperLogger MSWrapperLog:tag:level:]/7 No named identifier found in appSecret; using as-is
11:24:53.528625 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes fileURLWithName:]/1075 Didn't create crash buffer file as one already existed at file:///var/mobile/Containers/Data/Application/76272998-91E2-469F-9A0F-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/0.mscrasheslogbuffer.
11:24:53.529190 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes fileURLWithName:]/1075 Didn't create crash buffer file as one already existed at file:///var/mobile/Containers/Data/Application/76272998-91E2-469F-9A0F-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/1.mscrasheslogbuffer.
11:24:53.529652 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes fileURLWithName:]/1075 Didn't create crash buffer file as one already existed at file:///var/mobile/Containers/Data/Application/76272998-91E2-469F-9A0F-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/2.mscrasheslogbuffer.
11:24:53.529787 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes fileURLWithName:]/1075 Didn't create crash buffer file as one already existed at file:///var/mobile/Containers/Data/Application/76272998-91E2-469F-9A0F-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/3.mscrasheslogbuffer.
11:24:53.547125 +0100   MyApp.iOS   [AppCenter] INFO: -[MSHttpSender networkStateChanged]/346 Internet connection is up.
11:24:53.549737 +0100   MyApp.iOS   [AppCenter] DEBUG: +[MSSessionContext sharedInstance]_block_invoke/31 5 session(s) in the history.
11:24:53.551565 +0100   MyApp.iOS   [AppCenter] VERBOSE: -[MSSessionContext setSessionId:]/70 Stored new session with id:(null) and timestamp: 2018-03-14 10:24:53 +0000.
11:24:53.551644 +0100   MyApp.iOS   [AppCenter] INFO: -[MSAppCenter configure:]/222 App Center SDK configured successfully.
11:24:53.551699 +0100   MyApp.iOS   [AppCenter] VERBOSE: -[MSAppCenter start:withServices:]/234 Prepare to start services: MSAnalytics, MSCrashes
11:24:53.551865 +0100   MyApp.iOS   [AppCenter] VERBOSE: -[MSAppCenter start:withServices:]/236 Start services MSCrashes, MSAnalytics
11:24:53.552616 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes configureCrashReporterWithUncaughtExceptionHandlerEnabled:]/588 EnableUncaughtExceptionHandler is set to YES
11:24:53.557629 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes configureCrashReporterWithUncaughtExceptionHandlerEnabled:]/639 Exception handler successfully initialized.
11:24:53.574825 +0100   MyApp.iOS   [AppCenterCrashes] INFO: -[MSCrashes applyEnabledState:]/357 Crashes service has been enabled.
11:24:53.578904 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes startWithChannelGroup:appSecret:]/401 Started crash service.
11:24:53.579845 +0100   MyApp.iOS   [AppCenter] VERBOSE: -[MSSessionContext setSessionId:]/70 Stored new session with id:36C20159-XXXX-XXXX-XXXX-1E137546055A and timestamp: 2018-03-14 10:24:53 +0000.
11:24:53.579893 +0100   MyApp.iOS   [AppCenterAnalytics] INFO: -[MSSessionTracker renewSessionId]/50 New session ID: 36C20159-XXXX-XXXX-XXXX-1E137546055A
11:24:53.579940 +0100   MyApp.iOS   CCMonitor created
11:24:53.584290 +0100   MyApp.iOS   [AppCenterAnalytics] INFO: -[MSAnalytics applyEnabledState:]/108 Analytics service has been enabled.
11:24:53.585392 +0100   MyApp.iOS   [AppCenterAnalytics] VERBOSE: -[MSAnalytics startWithChannelGroup:appSecret:]/73 Started Analytics service.
11:24:53.586034 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes onEnqueuingLog:withInternalId:]/448 Storing a log to Crashes Buffer: (sid: 36C20159-XXXX-XXXX-XXXX-1E137546055A, type: startSession)
11:24:53.586103 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes onEnqueuingLog:withInternalId:]/459 Found an empty buffer position.
11:24:53.586193 +0100   MyApp.iOS   [AppCenter] DEBUG: -[MSChannelUnitDefault enqueueItem:]_block_invoke/114 Saving log, type: startSession.
11:24:53.589925 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes deleteBufferedLog:withInternalId:]/520 Deleting a log from buffer with id ED4281FF-XXXX-XXXX-BB26-4DF6975F55EC
11:24:53.590438 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes onEnqueuingLog:withInternalId:]/448 Storing a log to Crashes Buffer: (sid: (null), type: startService)
11:24:53.590495 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes onEnqueuingLog:withInternalId:]/459 Found an empty buffer position.
11:24:53.590541 +0100   MyApp.iOS   [AppCenter] DEBUG: -[MSChannelUnitDefault enqueueItem:]_block_invoke/114 Saving log, type: startService.
11:24:53.592715 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes deleteBufferedLog:withInternalId:]/520 Deleting a log from buffer with id 5B6ECE02-XXXX-XXXX-86F8-10C663A6C411
11:24:53.603916 +0100   MyApp.iOS   [MyApp.iOS][DEBUG] iPhone format detected
11:24:54.674171 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes startCrashProcessing]/695 Start delayed CrashManager processing
11:24:54.757002 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes processCrashReports]/755 Crash reports found
11:24:54.770674 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes processCrashReports]/767 shouldProcessErrorReport is not implemented or returned YES, processing the crash report: <MSPLCrashReport: 0x1c00a6240>
11:24:54.770755 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes processCrashReports]/755 Crash reports found
11:24:54.779793 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes processCrashReports]/767 shouldProcessErrorReport is not implemented or returned YES, processing the crash report: <MSPLCrashReport: 0x1d42bd0a0>
11:24:54.779905 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes processCrashReports]/755 Crash reports found
11:24:54.787919 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes processCrashReports]/767 shouldProcessErrorReport is not implemented or returned YES, processing the crash report: <MSPLCrashReport: 0x1d44a2e80>
11:24:54.787956 +0100   MyApp.iOS   [AppCenterCrashes] VERBOSE: -[MSCrashes processCrashReports]/755 Crash reports found
11:24:54.794906 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: -[MSCrashes processCrashReports]/767 shouldProcessErrorReport is not implemented or returned YES, processing the crash report: <MSPLCrashReport: 0x1d44a8820>
17:55:19.480297 +0100   MyApp.iOS   [MyApp.iOS][DEBUG] api Sync success, need to write now ....  <- My app debug message, all is OK here
17:55:19.482483 +0100   MyApp.iOS   [MyApp.iOS][DEBUG] 0 total objects received .... <- My app debug message, all is OK here
17:38:55.495458 +0100   MyApp.iOS   dynamic_cast error 2: One or more of the following type_info's  has hidden visibility.  They should all have public visibility.   N10__cxxabiv116__shim_type_infoE, id, N10__cxxabiv117__pbase_type_infoE.
17:38:55.495535 +0100   MyApp.iOS   dynamic_cast error 2: One or more of the following type_info's  has hidden visibility.  They should all have public visibility.   N10__cxxabiv116__shim_type_infoE, id, N10__cxxabiv117__pbase_type_infoE.
17:38:55.495594 +0100   MyApp.iOS   dynamic_cast error 2: One or more of the following type_info's  has hidden visibility.  They should all have public visibility.   N10__cxxabiv116__shim_type_infoE, id, N10__cxxabiv117__pbase_type_infoE.
11:25:01.376121 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: void ms_save_log_buffer_callback(siginfo_t *, ucontext_t *, void *)/102 Closed a buffer file: /var/mobile/Containers/Data/Application/76272998-XXXX-XXXX-XXXX-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/0.mscrasheslogbuffer
11:25:01.376170 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: void ms_save_log_buffer_callback(siginfo_t *, ucontext_t *, void *)/102 Closed a buffer file: /var/mobile/Containers/Data/Application/76272998-XXXX-XXXX-XXXX-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/1.mscrasheslogbuffer
11:25:01.376292 +0100   MyApp.iOS   [AppCenterCrashes] DEBUG: void ms_save_log_buffer_callback(siginfo_t *, ucontext_t *, void *)/102 Closed a buffer file: /var/mobile/Containers/Data/Application/76272998-XXXX-XXXX-XXXX-9B0C7A9899E1/Library/Caches/com.microsoft.appcenter/crasheslogbuffer/2.mscrasheslogbuffer

最后的日志從1.mscrasheslogbuffer重復到59.mscrasheslogbuffer

請注意,我的應用加載遵循以下步驟:

  • 使用圖像加載第一個 viewController,一個調用一些 Rest API 的活動指示器
  • API 調用后,使用 NavBar 執行到另一個 ViewController 的 segue

應用程序在兩步之間似乎崩潰了:我可以看到第一個屏幕和日志表明 http/api 內容正常。

請注意,我在模擬器和真實設備上的行為相同。

有什么想法嗎?

編輯 1 :使用AppCenter.LogLevel = LogLevel.Verbose;添加更多日志AppCenter.LogLevel = LogLevel.Verbose;

我們這邊也有同樣的問題。

我們通過刪除對Microsoft.AppCenter的 nuget 引用解決了這個問題。

換句話說,我們只保留了對

  • Microsoft.AppCenter.Analytics
  • Microsoft.AppCenter.Crashes

我們也在使用 1.5.0 版。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM