设置 badge crash

AVInstallation *installation = [AVInstallation currentInstallation];
installation.badge = badge;
[installation saveInBackground];

使用这段代码设置badge有时会 crash (3.2.8), 不知道最新的3.3有没有修复这个问题。这个 bug 比较难重现。

你好,请问是否集成了错误统计?可以在控制台的「分析」->「错误分析」里调查相关 log 日志。

或者是否集成了其他的 bug 日志 SDK?

请在下次出现问题时,保存下 log 日志,方便定位问题,谢谢。

rehabCollect(9493,0x16e58f000) malloc: *** error for object 0x147e1fee0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
(lldb) bt
* thread #12: tid = 0x2b8023, 0x000000018235011c libsystem_kernel.dylib`__pthread_kill + 8, queue = 'com.apple.root.default-qos', stop reason = signal SIGABRT
  * frame #0: 0x000000018235011c libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x000000018241cef8 libsystem_pthread.dylib`pthread_kill + 112
    frame #2: 0x00000001822c1dac libsystem_c.dylib`abort + 140
    frame #3: 0x000000018237c374 libsystem_malloc.dylib`free + 524
    frame #4: 0x00000001827b318c CoreFoundation`__rehashd + 244
    frame #5: 0x000000018269c1fc CoreFoundation`-[__NSDictionaryM setObject:forKey:] + 260
    frame #6: 0x00000001826a5fe8 CoreFoundation`-[NSMutableDictionary addEntriesFromDictionary:] + 252
    frame #7: 0x0000000100394984 rehabCollect`___lldb_unnamed_function1720$$rehabCollect + 476
    frame #8: 0x000000010039469c rehabCollect`___lldb_unnamed_function1718$$rehabCollect + 108
    frame #9: 0x00000001003adc28 rehabCollect`___lldb_unnamed_function2341$$rehabCollect + 76
    frame #10: 0x00000001003ae648 rehabCollect`___lldb_unnamed_function2352$$rehabCollect + 48
    frame #11: 0x0000000101819a7c libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #12: 0x0000000101819a3c libdispatch.dylib`_dispatch_client_callout + 16
    frame #13: 0x0000000101828c9c libdispatch.dylib`_dispatch_root_queue_drain + 2344
    frame #14: 0x0000000101828364 libdispatch.dylib`_dispatch_worker_thread3 + 132
    frame #15: 0x0000000182419470 libsystem_pthread.dylib`_pthread_wqthread + 1092
    frame #16: 0x0000000182419020 libsystem_pthread.dylib`start_wqthread + 4

还有调用 [AVOSCloud handleRemoteNotificationsWithDeviceToken:deviceToken];有时候也会 crash

* thread #4: tid = 0x2b3b27, 0x0000000181e2db90 libobjc.A.dylib`objc_msgSend + 16, queue = 'com.apple.root.default-qos', activity = 'starting resolver activity', 6 messages, stop reason = EXC_BAD_ACCESS (code=1, address=0x1a080)
  * frame #0: 0x0000000181e2db90 libobjc.A.dylib`objc_msgSend + 16
    frame #1: 0x000000018269c260 CoreFoundation`-[__NSDictionaryM setObject:forKey:] + 360
    frame #2: 0x00000001826a5fe8 CoreFoundation`-[NSMutableDictionary addEntriesFromDictionary:] + 252
    frame #3: 0x0000000100458984 rehabCollect`___lldb_unnamed_function1720$$rehabCollect + 476
    frame #4: 0x000000010045869c rehabCollect`___lldb_unnamed_function1718$$rehabCollect + 108
    frame #5: 0x0000000100471c28 rehabCollect`___lldb_unnamed_function2341$$rehabCollect + 76
    frame #6: 0x0000000100472648 rehabCollect`___lldb_unnamed_function2352$$rehabCollect + 48
    frame #7: 0x00000001018d1a7c libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #8: 0x00000001018d1a3c libdispatch.dylib`_dispatch_client_callout + 16
    frame #9: 0x00000001018e0c9c libdispatch.dylib`_dispatch_root_queue_drain + 2344
    frame #10: 0x00000001018e0364 libdispatch.dylib`_dispatch_worker_thread3 + 132
    frame #11: 0x0000000182419470 libsystem_pthread.dylib`_pthread_wqthread + 1092
    frame #12: 0x0000000182419020 libsystem_pthread.dylib`start_wqthread + 4

已经贴出错误信息,能不能确认一下什么原因?

你好,从错误堆栈来看,不太确定是 SDK 的问题还是应用代码的问题。如果去掉对 installation 的修改或者去掉调用 [AVOSCloud handleRemoteNotificationsWithDeviceToken:deviceToken];,开发环境能复现这个问题吗?

去掉不能复现,而且加异常断点出现 crash 的时候确实是断到了这里

这个问题频率不低,我看到之前好像也有人反映过这个问题,麻烦解决一下

请升级到最新 SDK 查看下还有问题吗?

v10.3.1

AVObject.sendBatchRequest:eventually:error:()

crash