[iOS 13]: Ngoại lệ gây tử vong: NSInvalidArgumentException Không thể thêm bản thân dưới dạng xem xét ([NSCache init])


9

Tôi đã thấy các vấn đề / câu hỏi tương tự trên Stack Overflow, nhưng chúng không giúp được gì.

Tôi đã xây dựng ứng dụng với Xcode 11 và iOS 13 SDK. Vấn đề là tôi chỉ nhận được tất cả các sự cố này trên iOS 13+, mặc dù ứng dụng của tôi hỗ trợ iOS 10+ và có ~ 50% người dùng iOS 12 trong số tất cả. Ngoài ra, tôi không thể gỡ lỗi hoặc sao chép nó.

Từ thông tin này tôi đã suy ra vấn đề phải cụ thể đối với iOS 13. Gần đây có ai gặp phải vấn đề tương tự không? Nguyên nhân có thể, giải pháp?

Đây là dấu vết ngăn xếp từ Crashlytics:

Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x1c25e1c30 __exceptionPreprocess
1  libobjc.A.dylib                0x1c22fc0c8 objc_exception_throw
2  CoreFoundation                 0x1c24d13ac -[NSCache init]
3  UIKitCore                      0x1c6b189a8 -[UIView(Internal) _addSubview:positioned:relativeTo:]
4  UIKitCore                      0x1c6078bb4 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke_2
5  UIKitCore                      0x1c6b11f60 +[UIView(Animation) performWithoutAnimation:]
6  UIKitCore                      0x1c6078630 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke
7  UIKitCore                      0x1c6b1784c +[UIView(Internal) _performBlockDelayingTriggeringResponderEvents:forScene:]
8  UIKitCore                      0x1c6078088 -[_UINavigationParallaxTransition animateTransition:]
9  UIKitCore                      0x1c606e2b0 ___UIViewControllerTransitioningRunCustomTransition_block_invoke_2
10 UIKitCore                      0x1c61822f8 +[UIInputResponderController _pinInputViewsForInputResponderController:onBehalfOfResponder:duringBlock:]
11 UIKitCore                      0x1c606e238 ___UIViewControllerTransitioningRunCustomTransition_block_invoke.648
12 UIKitCore                      0x1c6b11c0c +[UIView(Animation) _setAlongsideAnimations:toRunByEndOfBlock:]
13 UIKitCore                      0x1c606e088 _UIViewControllerTransitioningRunCustomTransition
14 UIKitCore                      0x1c5f9d77c -[UINavigationController _startCustomTransition:]
15 UIKitCore                      0x1c5fb0c18 -[UINavigationController _startDeferredTransitionIfNeeded:]
16 UIKitCore                      0x1c5fb20f8 -[UINavigationController __viewWillLayoutSubviews]
17 UIKitCore                      0x1c5f954e0 -[UILayoutContainerView layoutSubviews]
18 UIKitCore                      0x1c6b1fabc -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
19 libobjc.A.dylib                0x1c22f7af0 -[NSObject performSelector:withObject:]
20 QuartzCore                     0x1c90be0f4 -[CALayer layoutSublayers]
21 QuartzCore                     0x1c90be3fc CA::Layer::layout_if_needed(CA::Transaction*)
22 QuartzCore                     0x1c90d1964 CA::Layer::layout_and_display_if_needed(CA::Transaction*)
23 QuartzCore                     0x1c9016c1c CA::Context::commit_transaction(CA::Transaction*, double)
24 QuartzCore                     0x1c9041bd8 CA::Transaction::commit()
25 QuartzCore                     0x1c90427ac CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)
26 CoreFoundation                 0x1c255c67c __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
27 CoreFoundation                 0x1c255731c __CFRunLoopDoObservers
28 CoreFoundation                 0x1c25578cc __CFRunLoopRun
29 CoreFoundation                 0x1c2557098 CFRunLoopRunSpecific
30 GraphicsServices               0x1cc6c1534 GSEventRunModal
31 UIKitCore                      0x1c66777ac UIApplicationMain

Cập nhật 1 : Vấn đề liên quan đến tất cả các iPhone chạy iOS 13, không chỉ dòng iPhone X (S, R).

Cập nhật 2 : Vấn đề cũng liên quan đến iOS 12, nhưng sự cố hiếm khi xảy ra so với iOS 13. Tôi đoán là vấn đề này liên quan đến việc xây dựng dự án với SDK iOS 13, vì cùng một mã được xây dựng với SDK iOS 12 đã không sẽ không phát ra các sự cố như vậy và logic điều hướng không được cập nhật.


Chúng ta sẽ phải xem một số mã. Tôi đoán rằng một khung nhìn đang cố thêm chính nó như là một khung nhìn phụ.
Samuel Noyes

Đây là một cái gì đó để xem xét: stackoverflow.com/a/21226801/2142112
Samuel Noyes

2
Chúng tôi có cùng một lỗi xảy ra, nhưng trong trường hợp của chúng tôi, nó không giới hạn ở iOS 13. Có vẻ như đó là về việc trình bày / đẩy / loại bỏ / bật bộ điều khiển xem với hoạt hình, nhưng tôi chỉ có thể thấy thử nghiệm hồi quy (cố gắng đẩy / bật gần đồng thời) như một phương pháp gỡ lỗi khả thi.
EDUsta

1
@EDUsta Xin chào. Trong trường hợp của chúng tôi, chúng tôi cũng đã gặp một số sự cố trên iOS 12 (90% + vẫn là iOS 13). Nó chắc chắn cụ thể cho SDK iOS 13. Với SDK iOS 12, cùng một mã không phát ra bất kỳ lỗi nào như vậy và chúng tôi đã không thay đổi logic điều hướng trong ứng dụng.
Alexanderr Honcharov

1
@chroman Có vẻ như ứng dụng được xây dựng với Xcode 11.3 & iOS SDK 13.3 không gặp sự cố này nữa. Tôi đoán nó đã được giải quyết về phía Apple SDK.
Alexanderr Honcharov

Câu trả lời:


2

Ứng dụng được xây dựng với Xcode 11.3 & iOS SDK 13.3 không gặp sự cố này nữa. Tôi đoán nó đã được giải quyết ở phía iOS SDK.


Ứng dụng của chúng tôi tiếp tục thấy các báo cáo về sự cố này khi được xây dựng với Xcode 11.3.1
esilver

@esilver Có thể trong một số trường hợp nó xảy ra. Có lẽ kịch bản của bạn đã hơi khác. Nhưng trong trường hợp của chúng tôi, các sự cố chỉ biến mất hoàn toàn.
Alexanderr Honcharov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.