Ios 生产应用程序上的EXC#u坏访问崩溃,It';5%的用户出现了这种情况,但我无法重现

Ios 生产应用程序上的EXC#u坏访问崩溃,It';5%的用户出现了这种情况,但我无法重现,ios,swift,Ios,Swift,保留周期是否会导致内存泄漏,或者在某个时间点也会导致不正确的访问 我的应用程序有时会在prod上崩溃,调试时我无法再现崩溃。我猜崩溃是由于并发,但同时我发现了一个保留周期,但我认为它不会导致崩溃,它可能只是泄漏 有人能从下面的崩溃日志中猜出确切的问题吗 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000009f34b81e0 0 libobjc.A.dylib 0x1a2f3738c objc_release + 28

保留周期是否会导致内存泄漏,或者在某个时间点也会导致不正确的访问

我的应用程序有时会在prod上崩溃,调试时我无法再现崩溃。我猜崩溃是由于并发,但同时我发现了一个保留周期,但我认为它不会导致崩溃,它可能只是泄漏

有人能从下面的崩溃日志中猜出确切的问题吗

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000009f34b81e0

0  libobjc.A.dylib                0x1a2f3738c objc_release + 28
    1  TTTApp                          0x1018cdfbc TTTUser.__deallocating_deinit + 13 (TTTUser.swift:13)
    2  libswiftCore.dylib             0x1b0b2cbd4 _swift_release_dealloc + 36
    3  libswiftCore.dylib             0x1b0b2ba3c swift_release + 32
    4  libswiftCore.dylib             0x1b0b224c4 swift_arrayDestroy + 84
    5  libswiftCore.dylib             0x1b08bc99c _ContiguousArrayStorage.__deallocating_deinit + 48
    6  libswiftCore.dylib             0x1b0b2cbd4 _swift_release_dealloc + 36
    7  libswiftCore.dylib             0x1b0b2ba3c swift_release + 32
    8  TTTApp                          0x1018e0768 TTTChannel.deinit + 13 (TTTChannel.swift:13)
    9  TTTApp                          0x1018e07c4 TTTChannel.__deallocating_deinit + 13 (TTTChannel.swift:13)
    10 libswiftCore.dylib             0x1b0b2cbd4 _swift_release_dealloc + 36
    11 libswiftCore.dylib             0x1b0b2d754 bool swift::RefCounts<swift::SideTableRefCountBits>::doDecrement<(swift::PerformDeinit)1>(unsigned int) + 248
    12 libswiftCore.dylib             0x1b0b2ba3c swift_release + 32
    13 TTTApp                          0x1018d28e4 TTTContaxt.__deallocating_deinit + 13 (TTTContaxt.swift:13)
    14 libswiftCore.dylib             0x1b0b2cbd4 _swift_release_dealloc + 36
    15 libswiftCore.dylib             0x1b0b2ba3c swift_release + 32
    16 TTTApp                          0x102495e04 protocol witness for TTTContaxtProtocol.getWidgetViews(context:) in conformance TTTCustomojiContaxt + 54 (Customoji.swift:54)
    17 TTTApp                          0x101a0c598 TTTInputDriver.setupWidgetAccessoryView(_:) + 256 (TTTInputDriver.swift:256)
    18 TTTApp                          0x101a0cea0 TTTInputDriver.onTTTContaxtUpdated(context:) + 285 (TTTInputDriver.swift:285)
    19 TTTApp                          0x101a231f8 TTTViewController.onTTTContaxtUpdated(context:) + 190 (TTTViewController.swift:190)
    20 TTTApp                          0x101a28ba4 closure #1 in TTTViewControllerPresenter.contextDidUpdate(context:completion:) + 51 (TTTViewControllerPresenter.swift:51)
    21 TTTApp                          0x1001e4a3c thunk for @escaping @callee_guaranteed () -> () + 4339206716 (<compiler-generated>:4339206716)
    22 libdispatch.dylib              0x1a2ea8b7c _dispatch_call_block_and_release + 32
    23 libdispatch.dylib              0x1a2ea9fd8 _dispatch_client_callout + 20
    24 libdispatch.dylib              0x1a2eb5cc8 _dispatch_main_queue_callback_4CF + 968
    25 CoreFoundation                 0x1a317fcc8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
    26 CoreFoundation                 0x1a317aa24 __CFRunLoopRun + 1980
    27 CoreFoundation                 0x1a3179f40 CFRunLoopRunSpecific + 480
    28 GraphicsServices               0x1ad3f7534 GSEventRunModal + 108
    29 UIKitCore                      0x1a72f2a60 UIApplicationMain + 1940
    30 TTTApp                          0x1001b22ec main + 41 (VTTTTAppCreator.swift:41)
    31 libdyld.dylib                  0x1a2ff8e18 start + 4

EXC\u坏访问内核无效\u地址0x00000009f34b81e0
0 libobjc.A.dylib 0x1a2f3738c objc_版本+28
1 TTTApp 0x1018cdfbc TTTUser.\uuu解除分配\uu脱硝+13(TTTUser.swift:13)
2 libswiftCore.dylib 0x1b0b2cbd4 _swift_release_dealloc+36
3 libswiftCore.dylib 0x1b0b2ba3c swift_版本+32
4 libswiftCore.dylib 0x1b0b224c4 swift_阵列存储+84
5 libswiftCore.dylib 0x1b08bc99c u连续阵列存储。uu解除分配u数据删除+48
6 libswiftCore.dylib 0x1b0b2cbd4 _swift_release_dealloc+36
7 libswiftCore.dylib 0x1b0b2ba3c swift_版本+32
8 TTTApp 0x1018e0768 TTTChannel.deinit+13(TTTChannel.swift:13)
9 TTTApp 0x1018e07c4 TTT通道。\解除分配\脱硝+13(TTTChannel.swift:13)
10 libswiftCore.dylib 0x1b0b2cbd4 _swift_release_dealloc+36
11 libswiftCore.dylib 0x1b0b2d754 bool swift::RefCounts::doDecrement(无符号整数)+248
12 libswiftCore.dylib 0x1b0b2ba3c swift_版本+32
13 TTTApp 0x1018d28e4 TTTContext.\uu解除分配\u Denit+13(TTTContext.swift:13)
14 libswiftCore.dylib 0x1b0b2cbd4 _swift_release_dealloc+36
15 libswiftCore.dylib 0x1b0b2ba3c swift_版本+32
16 TTTContextProtocol.getWidgetViews(上下文:)的TTTApp 0x102495e04协议见证符合TTTCustomojiContaxt+54(Customoji.swift:54)
17 TTTApp 0x101a0c598 TTTInputDriver.setupWidgetAccessoryView(:)+256(TTTInputDriver.swift:256)
18 TTTApp 0x101a0cea0 TTTInputDriver.ONTTCONTAXTUPDATED(上下文:)+285(TTTInputDriver.swift:285)
19 TTTApp 0x101a231f8 TTTViewController.onTTTContaxtUpdated(上下文:)+190(TTTViewController.swift:190)
20 TTTViewControllerPresenter.contextDidUpdate(上下文:完成:)+51(TTTViewControllerPresenter.swift:51)中的TTTApp 0x101a28ba4闭包#1
21 TTTApp 0x1001e4a3c thunk for@escaping@callee_担保()->()+4339206716(:4339206716)
22 libdispatch.dylib 0x1a2ea8b7c调度调用块和释放+32
23 libdispatch.dylib 0x1a2ea9fd8调度客户端调用+20
24 libdispatch.dylib 0x1a2eb5cc8_dispatch_main_queue_callback_4CF+968
25 CoreFoundation 0x1a317fcc8\uuuu CFRUNLOOP\u正在为\u主\u调度\u队列\uuuuu+16提供服务
26 CoreFoundation 0x1a317aa24 _uCfRunLoopRun+1980
27 CoreFoundation 0x1a3179f40 CFRunLoopRunSpecific+480
28图形服务0x1ad3f7534 GSEventRunModal+108
29 UIKitCore 0x1a72f2a60 UIApplicationMain+1940
30 TTTApp 0x1001b22ec主接头+41(VTTTTAppCreator.swift:41)
31 libdyld.dylib 0x1a2ff8e18开始+4

如果您没有使用Crashlytics或类似的工具,我建议您这样做……实施Crashlytics以获得崩溃的适当详细信息日志来自crashlyticsEXC\u BAD\u ACCESS KERN\u INVALID\u ADDRESS指示了悬空指针错误。某个地方有一个解除分配的对象仍然被引用,而您试图取消引用它,因此出现了错误。这可以在retain cycle设置中找到,在该设置中,您尝试强制展开已解除分配的弱父级。