google-analytics - 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。所以,也许这里也是如此。我们会看看我是否能从谷歌之神那里听到任何回音……
解决方案
经过日日夜夜的失眠,我们找到了解决这个问题的方法。在我们的案例中,问题是由于 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
推荐阅读
- python - 如何使用 python 3 解析 xml 无法获取可读的子信息
- c++ - 如何将 glog 与 bazel 一起使用?
- android - 如何检查是否可以在 Kotlin 中打开 url
- firebase - Firebase RealtimeDatabase 与 .NET Core
- loops - 使用命令行/批处理的 Echo DNS 和 Alternative DNS
- javascript - 带有按钮附加的 el-select | 元素用户界面
- python - 高 CPU 消耗 - PyTorch
- git - 从 TeamCity 代理推送到 github
- c - 不调用 realloc 系统调用的数组重定位
- html - 为什么具有自动边距的块元素在网格内的行为不同?