首页 > 解决方案 > iOS 12-only Crash on -[GAIAnalyticsPropertiesStore upsertPropertyRecord:]

问题描述

无法重现,但通过 crashlytics 报告了很多崩溃。

请参阅下面的崩溃日志。如果需要更多信息,请告诉我...

仅在运行 iOS 12.0/12.1 的设备上崩溃

使用 GoogleAnalytics 3.17.0(最新)

崩溃发生在:

8  -----                          0x10148534c -[GAIAnalyticsPropertiesStore upsertPropertyRecord:] + 4383150924

非常感谢您的帮助和建议。谢谢!

崩溃:GAIThread

0 libsystem_platform.dylib 0x1bf912f3c _os_unfair_lock_unowned_abort + 36

1 libsystem_platform.dylib 0x1bf914524 _os_unfair_lock_unlock_slow + 144

2 libsqlite3.dylib 0x1c017e18c sqlite3_randomness + 4368

3 libsqlite3.dylib 0x1c015d878 sqlite3_value_text + 26356

4 libsqlite3.dylib 0x1c015d250 sqlite3_value_text + 24780

5 libsqlite3.dylib 0x1c0128434 sqlite3_finalize + 3732

6 libsqlite3.dylib 0x1c01557d0 sqlite3_step + 66844

7 libsqlite3.dylib 0x1c0145464 sqlite3_step + 432

8 ----- 0x10148534c -[GAIAnalyticsPropertiesStore upsertPropertyRecord:] + 4383150924

9 ----- 0x101484ddc -[GAIAnalyticsPropertiesStore nextHitNumberForTrackingId:clientId:] + 4383149532

10 ----- 0x10147eb00 -[GAIBatchingDispatcher queueDispatch:] + 4383124224

11 ----- 0x10147e91c -[GAIBatchingDispatcher queueModel:] + 4383123740

12 基础 0x1c07bb5a0 __NSThreadPerformPerform + 336

13 核心基础 0x1bfc9a5b8 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 24

14 核心基础 0x1bfc9a538 __CFRunLoopDoSource0 + 88

15 核心基础 0x1bfc99e1c __CFRunLoopDoSources0 + 176

16 核心基础 0x1bfc94ce8 __CFRunLoopRun + 1040

17 核心基础 0x1bfc945b8 CFRunLoopRunSpecific + 436

18 基础 0x1c06886a4 -[NSRunLoop(NSRunLoop) 运行模式:beforeDate:] + 300

19 基础 0x1c06c4094 -[NSRunLoop(NSRunLoop) 运行] + 88

20 ----- 0x10146bf14 +[GAI threadMain:] + 4383047444

21 基础 0x1c07bb3b0 NSThread__start + 1040

22 libsystem_pthread.dylib 0x1bf9252fc _pthread_body + 128

23 libsystem_pthread.dylib 0x1bf92525c _pthread_start + 48

24 libsystem_pthread.dylib 0x1bf928d08 thread_start + 4

--

更新:

我做了一些似乎有帮助的改变。该应用程序仍在崩溃,但频率较低。我还添加了日志语句以帮助查明崩溃的位置和时间。

我所做的似乎有帮助的更改是增加了 dispatchInterval 的值(之前设置为 20)......

[GAI sharedInstance].dispatchInterval = 60;

此外,崩溃似乎仅在应用程序启动和/或在尝试跟踪应用程序委托方法中的事件时变为活动状态时发生......

- (void)applicationDidBecomeActive:(UIApplication *)application {
        ...
        GA_EVENT(@"App Launch", @"", @"App Launched", 0);
        // NOTE: GA_EVENT defines a custom method that creates the event (GAIDictionaryBuilder) 
        // and invokes the GAITracker's send method with the event per usual.        
        // This approach is used throughout the app and was working fine prior 
        // to iOS 12, but is now causing a crash here for some reason
        ...
}

最后,如果这是 GA SDK 的错误,我在他们的错误跟踪器中创建了一个问题。根据我的研究,上次报告此崩溃时,似乎需要更新他们的 SDK。所以,也许这里也是如此。我们会看看我是否能从谷歌之神那里听到任何回音……

https://issuetracker.google.com/issues/117476933

标签: google-analytics

解决方案


经过日日夜夜的失眠,我们找到了解决这个问题的方法。在我们的案例中,问题是由于 Apsalar SDK 而发生的。如果您在项目中使用 Apsalar SDK,我强烈建议您从 Apsalar 迁移到 Singular SDK。Singular SDK 涵盖了 Apsalar 提供的所有功能。因此,您不必担心丢失任何功能或更改大量代码。

您可以从以下链接下载 Singular SDK:https: //support.singular.net/hc/en-us/articles/115000497903-Integrating-the-Singular-SDK


推荐阅读