[iOS 13]:致命的な例外:NSInvalidArgumentException Ca n't add subview([NSCache init])


9

Stack Overflowで同様の問題/質問を見たことがありますが、役に立ちませんでした。

Xcode 11とiOS 13 SDKでアプリをビルドしました。問題は、私のアプリがiOS 10以降をサポートしていて、すべてのユーザーの中で最大50%のiOS 12ユーザーがいるにもかかわらず、これらすべてのクラッシュがiOS 13以降でのみ発生することです。また、デバッグも再現もできません。

この情報から、問題はiOS 13に固有である必要があると推測しました。最近、誰かが同じ問題に遭遇しましたか?考えられる原因、解決策?

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

アップデート1:この問題は、iPhone X(S、R)ラインだけでなく、iOS 13を実行しているすべてのiPhoneに関連しています。

アップデート2:この問題はiOS 12にも関連しますが、iOS 13と比較してクラッシュが発生することはほとんどありません。私の問題は、iOS 12 SDKでビルドされた同じコードがiOS 12 SDKでビルドされたため、プロジェクトのビルドに関連していると思いますこのようなクラッシュは発生せず、ナビゲーションロジックは更新されませんでした。


いくつかのコードを見る必要があります。ビューがそれ自体をサブビューとして追加しようとしていると思います。
Samuel Noyes、

ここに調査するものがあります:stackoverflow.com/a/21226801/2142112
Samuel Noyes

2
同じエラーが発生していますが、私たちの場合はiOS 13に限定されていません。おそらく、ビューコントローラーをアニメーションで表示/プッシュ/非表示/ポップすることに関するもののようですが、回帰テストしか表示されません(プッシュ/実行可能なデバッグ方法として)
EDUsta

1
@EDUstaこんにちは。私たちのケースでは、iOS 12でもいくつかクラッシュしました(90%以上はiOS 13のままです)。これは間違いなくiOS 13 SDKに固有のものです。iOS 12 SDKでは、同じコードでこの種のエラーが発生することはなく、アプリのナビゲーションロジックは変更されていません。
Aleksandr Honcharov

1
@chroman Xcode 11.3とiOS SDK 13.3でビルドされたアプリには、このクラッシュはもうありません。Apple SDK側で解決されたと思います。
Aleksandr Honcharov

回答:


2

Xcode 11.3およびiOS SDK 13.3でビルドされたアプリでは、このクラッシュは発生しなくなりました。iOS SDK側で解決されたと思います。


私たちのアプリは、Xcode 11.3.1でビルドされたときにこのクラッシュのレポートを引き続き表示します
esilver

@esilverたぶんそれが起こるかもしれません。多分あなたのシナリオは少し異なっていました。しかし、私たちの場合、クラッシュは完全になくなりました。
Aleksandr Honcharov
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.