2017-11-17 1 views
2

Ich habe eine erhebliche Spitze in App-Abstürzen auf iOS 11 und höher mit dieser Nachricht festgestellt. Dies scheint eine interne API zu sein, dass UIKit ruft, zeigt die Stack-Trace, dass es etwas in UITableViewCell ist:iOS 11 und höher abstürzt mit - [UIView setDrawsWithVibrantLightMode:]: unerkannter Selektor an Instanz gesendet

Application Specific Information: 
    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setDrawsWithVibrantLightMode:]: unrecognized selector sent to instance 0x15defa6d0' 

    Last Exception Backtrace: 
    0 CoreFoundation      0x0000000181691d04 __exceptionPreprocess + 124 
    1 libobjc.A.dylib      0x00000001808e0528 objc_exception_throw + 52 
    2 CoreFoundation      0x000000018169f1c8 -[NSObject(NSObject) doesNotRecognizeSelector:] + 136 
    3 UIKit        0x000000018ae8711c -[UIResponder doesNotRecognizeSelector:] + 292 
    4 CoreFoundation      0x00000001816976b0 ___forwarding___ + 1376 
    5 CoreFoundation      0x000000018157d01c _CF_forwarding_prep_0 + 88 
    6 UIKit        0x000000018b022d58 -[UITableViewCell _setSeparatorDrawsInVibrantLightMode:] + 216 
    7 UIKit        0x000000018abf5ef0 -[UITableViewCell setSeparatorColor:] + 340 
    8 UIKit        0x000000018abf451c __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 1228 
    9 UIKit        0x000000018aad6e34 +[UIView(Animation) performWithoutAnimation:] + 100 
    10 UIKit        0x000000018abf3f64 -[UITableView _configureCellForDisplay:forIndexPath:] + 268 
    11 UIKit        0x000000018ae03a00 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 844 
    12 UIKit        0x000000018ae03eac -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 76 
    13 UIKit        0x000000018ade39f0 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2136 
    14 UIKit        0x000000018ab99508 -[UITableView layoutSubviews] + 136 

ich nicht in der Lage waren, dies zu reproduzieren, aber es ist konsequent auf eine Reihe von Benutzergeräten abstürzt und es gibt keine Gemeinsamkeit zwischen der Geräte- oder Betriebssystemversion, außer dass sie nur auf iOS 11 und höher auftritt.

Antwort

4

dachte schließlich heraus, dass dies ein Fehler in UIKit wenn die Darken Farben Einstellung unter Accessibility Einstellungen aktiviert ist:

Settings -> General -> Accessibility -> Increase Contrast -> Darken Colors

Wenn Sie erleben diesen Absturz versuchen Makeln, dass/off auf Einstellung um es zu reproduzieren.

Vorerst wir dies schon durch einfache Durchführung dieses Verfahrens als Void Funktion in einer Erweiterung unterdrückt:

@available(iOS 11.0, *) 
extension UITableViewCell { 
    func _setSeparatorDrawsInVibrantLightMode(_ value: Bool) { 

    } 
} 

So UIKit kann es nennen, aber es tut einfach nichts (und nicht abstürzt die App).

+0

Sie müssen die Methode als @obj markieren, damit sie funktioniert. –

Verwandte Themen