5

尝试在现有 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;

4

1 回答 1

0

我们这边也有同样的问题。

我们通过删除对Microsoft.AppCenter.

换句话说,我们只保留了对 nuget 的引用

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

我们也在使用 1.5.0 版本。

于 2019-11-08T13:11:17.077 回答