[iOS 13]: Önemli Özel Durum: NSInvalidArgumentException Kendini alt görünüm olarak ekleyemiyor ([NSCache init])


11

Stack Overflow'da benzer sorunlar / sorular gördüm, ancak yardımcı olmadılar.

Uygulamayı Xcode 11 ve iOS 13 SDK ile oluşturdum. Sorun, uygulamam iOS 10+'yi desteklese ve bunların arasında ~% 50 iOS 12 kullanıcısı olmasına rağmen, tüm bu kilitlenmeleri yalnızca iOS 13+'de almam. Ayrıca, hata ayıklama ya da çoğaltma yapamıyorum.

Bu bilgilerden, sorunun iOS 13'e özgü olması gerektiğini çıkardım. Son zamanlarda aynı sorunla karşılaşan var mı? Olası nedenler, çözümler?

İşte Crashlytics'ten yığın izlemesi:

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

Güncelleme 1 : Sorun, sadece iPhone X (S, R) hattı ile değil, iOS 13 çalıştıran tüm iPhone'lar ile ilgilidir.

Güncelleme 2 : Sorun iOS 12 ile de ilgili, ancak iOS 13 ile karşılaştırıldığında nadiren çökmeler oluyor. Tahminimce sorun iOS 13 SDK ile projeyi oluşturmakla ilgili, çünkü iOS 12 SDK ile oluşturulan aynı kod Bu tür çökmeler yaymaz ve gezinme mantığı güncellenmez.


Bir kod görmemiz gerekecekti. Bir görünümün kendisini bir alt görünüm olarak eklemeye çalıştığını tahmin ediyorum.
Samuel Noyes

İşte dikkat etmeniz gereken bir şey var: stackoverflow.com/a/21226801/2142112
Samuel Noyes

2
Aynı hata devam ediyor, ancak bizim durumumuzda iOS 13 ile sınırlı değil. Muhtemelen görünüm denetleyicilerini animasyonla sunmak / itmek / reddetmek / patlatmakla ilgili, ancak sadece bir regresyon testi görebiliyorum ( uygulanabilir bir hata ayıklama yöntemi olarak.
EDUsta

1
@EDUsta Merhaba. Bizim durumumuzda da iOS 12'de birkaç çökme var (% 90 + hala iOS 13). Kesinlikle iOS 13 SDK'ya özgü. İOS 12 SDK ile aynı kod böyle bir hata vermedi ve uygulamadaki navigasyon mantığını değiştirmedik.
Aleksandr Honcharov

1
@chroman Xcode 11.3 ve iOS SDK 13.3 ile oluşturulan uygulama artık bu çökmeye sahip değil. Sanırım Apple SDK tarafında çözüldü.
Aleksandr Honcharov

Yanıtlar:


2

Xcode 11.3 ve iOS SDK 13.3 ile oluşturulan uygulama artık bu çökmeye sahip değil. Sanırım iOS SDK tarafında çözüldü.


Uygulamamız Xcode 11.3.1 ile oluşturulduğunda bu çökme raporlarını görmeye devam ediyor
esilver

@esilver Belki bazı durumlarda olur. Belki senaryonun biraz farklıydı. Ancak bizim durumumuzda çökmeler tamamen ortadan kayboldu.
Aleksandr Honcharov

1
Benim için de projemi iOS SDK 13.0'a güncellediğimde başladı, ancak hala iOS SDK 13.4'te bu hatayı alıyorum, ancak bazı aramalarda, bu soruna neden olan Firebase Crashlytics SDK'sı olabileceği anlaşılıyor
Leonardo Bortolotti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.