iOS应用启动时APM模块因__isPlatformVersionAtLeast触发SIGABRT崩溃求助
iOS APM子模块崩溃排查求助
近期发布跨平台应用更新后,Crashlytics捕获到大量崩溃,全部集中在APM子模块类中,触发原因为__isPlatformVersionAtLeast引发SIGABRT (ABORT),崩溃发生在AppDelegate的didFinishLaunchingWithOptions执行阶段,应用部署版本为iOS 12.2和13.0。
didFinishLaunchingWithOptions代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //Firebase [FIRPerformance sharedInstance].instrumentationEnabled = 0; [FIRApp configure]; NSDictionary *props = @{ @"TESTING": @"iOS", @"Date": [NSDate date] }; //Clevertap [[CleverTap sharedInstance] setInAppNotificationDelegate:self]; [[CleverTap sharedInstance] setPushNotificationDelegate:self]; NSString *appPath = [[NSBundle mainBundle] bundlePath]; NSLog(@"appPath ------ %@",appPath); // Config an additional instance NSLog(@"multiple instance registration"); CleverTapInstanceConfig *ctConfig = [[CleverTapInstanceConfig alloc] initWithAccountId:@"TEST*******" accountToken:@"TEST*****"]; NSLog(@"multiple instance registration %@",ctConfig); CleverTap *additionalCleverTapInstance = [CleverTap instanceWithConfig:ctConfig]; [AEPMobileCore setLogLevel:AEPLogLevelDebug]; [AEPMobileCore configureWithAppId:@"99********"]; return YES; }
Podfile配置
pod 'Firebase/Analytics' pod 'Firebase/Auth' pod 'Firebase/Crashlytics', '10.28.1' pod 'FirebasePerformance', '10.28.0' pod 'FirebaseRemoteConfig' pod 'CleverTap-iOS-SDK', '6.2.1'
崩溃堆栈信息
APMIdentityWorkerQueue崩溃堆栈
Crashed: APMIdentityWorkerQueue 0 libsystem_kernel.dylib 0xc274 __pthread_kill + 8 1 libsystem_pthread.dylib 0x7ef8 pthread_kill + 268 2 libsystem_c.dylib 0x77ad8 abort + 128 3 libsystem_malloc.dylib 0x9c38 malloc_vreport + 896 4 libsystem_malloc.dylib 0x98a8 malloc_report + 64 5 libsystem_malloc.dylib 0x8e80 find_zone_and_free + 528 6 App 0xfe574 (Missing UUID 0faca6be3dbe3121a960c0897cece480) 7 App 0xf7e04 (Missing UUID 0faca6be3dbe3121a960c0897cece480) 8 App 0xfc250 (Missing UUID 0faca6be3dbe3121a960c0897cece480) 9 App 0xfbbec (Missing UUID 0faca6be3dbe3121a960c0897cece480) 10 App 0x2b4d00 (Missing UUID 0faca6be3dbe3121a960c0897cece480) 11 App 0x2bed74 (Missing UUID 0faca6be3dbe3121a960c0897cece480) 12 App 0x18344c (Missing UUID 0faca6be3dbe3121a960c0897cece480) 13 libsystem_pthread.dylib 0x7ef8 pthread_kill + 268 14 App 0x28354fc __isPlatformVersionAtLeast + 4384462076 15 ??? 0x3015b5920 (Missing) 16 ??? 0xd5e00078c (Missing) 17 ??? 0x1f058ed (Missing)
APMExperimentWorkerQueue崩溃堆栈
0 libsqlite3.dylib 0x815f0 sqlite3_table_column_metadata + 2400 1 libsqlite3.dylib 0x13b2c sqlite3_exec + 46032 2 libsqlite3.dylib 0xaae0 sqlite3_exec + 9092 3 libsqlite3.dylib 0x9ac8 sqlite3_exec + 4972 4 libsqlite3.dylib 0x9158 sqlite3_exec + 2556 5 libsqlite3.dylib 0x12830 sqlite3_exec + 41172 6 libsqlite3.dylib 0x11f20 sqlite3_exec + 38852 7 libsqlite3.dylib 0x11e64 sqlite3_exec + 38664 8 libsqlite3.dylib 0xb14bc sqlite3_sourceid + 132108 9 libsqlite3.dylib 0xd130 sqlite3_exec + 18900 10 libsqlite3.dylib 0xc224 sqlite3_exec + 15048 11 libsqlite3.dylib 0x9ac8 sqlite3_exec + 4972 12 libsqlite3.dylib 0x9158 sqlite3_exec + 2556 13 libsqlite3.dylib 0x8d30 sqlite3_exec + 1492 14 App 0x58249c -[APMSqliteStore prepareSQL:error:] + 4339819676 15 App 0x58295c -[APMSqliteStore validateDatabaseWithError:] + 4339820892 16 App 0x58289c -[APMSqliteStore openAndValidateDatabase:] + 4339820700 17 App 0x57ecbc -[APMSqliteStore initWithDatabasePath:error:] + 4339805372 18 App 0x505ae4 -[APMEDatabase initializeDatabaseResourcesWithContext:databasePath:] + 4339309284 19 App 0x505a0c -[APMEDatabase initWithPath:] + 4339309068 20 App 0x50d294 -[APMETaskManager startTaskManagerOnWorkerQueue] + 4339339924 21 App 0x50d24c __35-[APMETaskManager startTaskManager]_block_invoke + 4339339852 22 App 0x50e578 __46-[APMETaskManager dispatchAsyncOnWorkerQueue:]_block_invoke + 4339344760 23 libdispatch.dylib 0x213c _dispatch_call_block_and_release + 32 24 libdispatch.dylib 0x3dd4 _dispatch_client_callout + 20 25 libdispatch.dylib 0xb400 _dispatch_lane_serial_drain + 748 26 libdispatch.dylib 0xbf30 _dispatch_lane_invoke + 380 27 libdispatch.dylib 0x16cb4 _dispatch_root_queue_drain_deferred_wlh + 288 28 libdispatch.dylib 0x16528 _dispatch_workloop_worker_thread + 404 29 libsystem_pthread.dylib 0x4934 _pthread_wqthread + 288 30 libsystem_pthread.dylib 0x10cc start_wqthread + 8
Podfile.lock依赖详情(部分)
- Firebase/Analytics (10.28.1): - Firebase/Core - Firebase/Auth (10.28.1): - Firebase/CoreOnly - FirebaseAuth (~> 10.28.0) - Firebase/Core (10.28.1): - Firebase/CoreOnly - FirebaseAnalytics (~> 10.28.0) - ...(其余依赖内容略)
排查方向建议
- 统一Firebase组件版本:当前FirebaseCrashlytics(10.28.1)与FirebasePerformance(10.28.0)存在版本差异,建议将所有Firebase组件版本统一,消除跨版本兼容性隐患。
- 适配低版本iOS系统:崩溃集中在iOS12.2和13.0,检查APM模块中
__isPlatformVersionAtLeast相关逻辑是否对低版本系统做了正确适配,避免API调用未做版本判断导致的崩溃。 - 排查数据库线程冲突:APMExperimentWorkerQueue崩溃指向SQLite数据库初始化,可能是多线程操作数据库引发的资源竞争,检查APM与其他SDK(如CleverTap、Firebase)的数据库操作是否存在线程冲突。
- 调整SDK初始化顺序:当前初始化顺序为Firebase → CleverTap → AEP,尝试调整顺序或延迟部分SDK初始化到后台线程,避免主线程阻塞引发的崩溃。
- 补全崩溃日志符号化:APMIdentityWorkerQueue堆栈存在Missing UUID,重新符号化日志以获取完整函数调用栈,定位具体崩溃代码位置。
内容的提问来源于stack exchange,提问作者Ramesh_Siva
相关产品推荐
相关产品推荐

