以下是来自Crashlytics的堆栈跟踪,它在设置文本视图的帧高时崩溃:
(我EXC_BAD_ACCESS KERN_INVALID_ADDRESS
和SIGABRT ABORT
在同一行@objc UIView.height.setter (UIView+.swift)
)
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x000000000000000d
Crashed: com.apple.main-thread
0 CoreText 0x194d24cd8 TOpenTypeMorph::SetLookups(OTL::GSUB&, unsigned int const*, OTL::GlyphLookups&) + 200
1 CoreText 0x194d24dd4 TOpenTypeMorph::SetLookups(OTL::GSUB&, unsigned int const*, OTL::GlyphLookups&) + 452
2 CoreText 0x194d25a40 void TOpenTypeMorph::ApplyShapingEngine<TInlineVector<unsigned int, 30ul> >(OTL::GSUB&, OTL::GlyphLookups&, unsigned int*, CFRange, TInlineVector<unsigned int, 30ul>&, SyncState&) + 1620
3 CoreText 0x194d24fac TOpenTypeMorph::ShapeGlyphs(SyncState&) + 340
4 CoreText 0x194cc4a4c TShapingEngine::ShapeGlyphs(TLine&, TCharStream const&) + 224
5 CoreText 0x194c8fa48 TTypesetter::TTypesetter(__CFArray const*, __CFString const*, void const* (*)(__CTRun const*, __CFString const*, void*), void*) + 188
6 CoreText 0x194c8f860 CTTypesetterCreateWithRunArray + 88
7 UIFoundation 0x197dffbb4 -[NSATSGlyphStorage createCTTypesetter] + 1512
8 UIFoundation 0x197dfa960 -[NSATSTypesetter _ctTypesetter] + 296
9 UIFoundation 0x197e03b14 -[NSATSLineFragment layoutForStartingGlyphAtIndex:characterIndex:minPosition:maxPosition:lineFragmentRect:] + 128
10 UIFoundation 0x197dfb534 -[NSATSTypesetter _layoutLineFragmentStartingWithGlyphAtIndex:characterIndex:atPoint:renderingContext:] + 2316
11 UIFoundation 0x197dfcaf8 -[NSATSTypesetter layoutParagraphAtPoint:] + 160
12 UIFoundation 0x197e53980 -[NSTypesetter _layoutGlyphsInLayoutManager:startingAtGlyphIndex:maxNumberOfLineFragments:maxCharacterIndex:nextGlyphIndex:nextCharacterIndex:] + 5692
13 UIFoundation 0x197e53da4 -[NSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 244
14 UIFoundation 0x197dfd558 -[NSATSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 448
15 UIFoundation 0x197de968c -[NSLayoutManager(NSPrivate) _fillLayoutHoleForCharacterRange:desiredNumberOfLines:isSoft:] + 1116
16 UIFoundation 0x197deb180 -[NSLayoutManager(NSPrivate) _fillLayoutHoleAtIndex:desiredNumberOfLines:] + 196
17 UIFoundation 0x197deb8b4 -[NSLayoutManager(NSPrivate) _markSelfAsDirtyForBackgroundLayout:] + 344
18 UIFoundation 0x197df477c -[NSLayoutManager(NSPrivate) _invalidateLayoutForExtendedCharacterRange:isSoft:invalidateUsage:] + 2292
19 UIFoundation 0x197e1dee8 -[NSLayoutManager textContainerChangedGeometry:] + 332
20 UIFoundation 0x197e40220 -[NSTextContainer setSize:] + 160
21 UIKit 0x197f74508 _UITextContainerViewResyncNSTextContainer + 264
22 UIKit 0x19890198c __64-[_UITextContainerView _setFrameOrBounds:oldRect:settingAction:]_block_invoke + 52
23 UIKit 0x198901878 -[_UITextContainerView _setFrameOrBounds:oldRect:settingAction:] + 308
24 UIKit 0x197f7436c -[_UITextContainerView setFrame:] + 188
25 UIKit 0x1988ee64c -[UITextView _resyncContainerFrameForNonAutolayoutDeferringSizeToFit:] + 644
26 UIKit 0x1988ef1b4 -[UITextView _setFrameOrBounds:fromOldRect:settingAction:] + 500
27 UIKit 0x197f73bf8 -[UITextView setFrame:] + 188
28 MyAppCore 0x1024ac944 @objc UIView.height.setter (UIView+.swift)
29 MyAppShell 0x1030a1cbc MyAppTextBaseCell.setSubviewFrames() -> () (MyAppTextBaseCell.swift)
30 MyAppShell 0x1059254e0 MyAppCollectionViewCell.layoutSubviews() -> () (MyAppCollectionViewCell.swift:215)
31 MyAppShell 0x1059255d4 @objc MyAppCollectionViewCell.layoutSubviews() -> () (MyAppCollectionViewCell.swift)
32 UIKit 0x197ec6220 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1196
33 QuartzCore 0x195386188 -[CALayer layoutSublayers] + 148
34 QuartzCore 0x19537ae64 CA::Layer::layout_if_needed(CA::Transaction*) + 292
35 UIKit 0x197edac90 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1020
36 MyAppLib 0x100b56ea4 -[MyAppImpressionTracker reloadViewPortCellsWithCompletion:] (MyAppImpressionTracker.m:59)
37 MyAppLib 0x100b65f0c -[MyAppTracker viewPortWillRefresh:withReloadDataCompletion:] (MyAppTracker.m:150)
38 MyAppShell 0x1030d3440 MyAppViewController.reloadData() -> () (MyAppViewController.swift)
39 MyAppFeed 0x102a85ad4 MyAppViewController.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) -> () (MyAppViewController.swift)
40 MyAppFeed 0x102a85c80 @objc MyAppViewController.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) -> () (MyAppViewController.swift)
41 MyAppFeed 0x102a53030 protocol witness for MyAppProviderDelegate.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) -> () in conformance MyAppViewController (MyAppCellViewModel.swift)
42 MyAppFeed 0x102b35c84 specialized MyAppProvider.(updateSectionProviders(Bool, hasInitialUpdates : Bool, completion : () -> ()?) -> ()).(closure #2) (MyAppProvider.swift)
43 MyAppFeed 0x102b32380 partial apply for MyAppProvider.(updateSectionProviders(Bool, hasInitialUpdates : Bool, completion : () -> ()?) -> ()).(closure #2) (MyAppProvider.swift)
44 MyAppCore 0x10246188c partial apply for static GCD.(dispatchAsyncMyAppOperationQueue(() -> (), thenOnMainQueue : () -> ()?) -> ()).(closure #1).(closure #1) (QueueHelper.swift)
45 libdispatch.dylib 0x190ef9200 _dispatch_call_block_and_release + 24
46 libdispatch.dylib 0x190ef91c0 _dispatch_client_callout + 16
47 libdispatch.dylib 0x190efdd6c _dispatch_main_queue_callback_4CF + 1000
48 CoreFoundation 0x19201bf2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
49 CoreFoundation 0x192019b18 __CFRunLoopRun + 1660
50 CoreFoundation 0x191f48048 CFRunLoopRunSpecific + 444
51 GraphicsServices 0x1939ce198 GSEventRunModal + 180
52 UIKit 0x197f342fc -[UIApplication _run] + 684
53 UIKit 0x197f2f034 UIApplicationMain + 208
54 MyApp 0x1000b344c main (AppDelegate.swift:27)
55 libdispatch.dylib 0x190f2c5b8 (Missing)
由于崩溃日志与Glyph
有关,因此某些奇怪的字符/符号可能会出现在英语以外的语言中。
我无法重现此次崩溃,有人可以提供任何指针。