2017-10-30 6 views
2

Xcode 9でSwift 4に移行していないアプリケーションで作業しています。クラッシュを発見し、デバッガが行を印刷していないことを認識しましたクラッシュやその背後にある理由。 NSExceptionがあっただけです。例外ブレークポイントを追加すると、スタックトレースなしのクラッシュが発生する

私はなぜこれが起こっているのかを知り始めました。例外のブレークポイントを追加してみるべきです。しかし、私がこれをしようとするたびに、アプリは初めてのインストールであっても読み込み中にクラッシュします。しかし、私はブレークポイントを無効にする瞬間、アプリは正常に動作し、クラッシュしません。私はXcodeが記述的なスタックトレースを印刷するのを止めたのかどうかは分かりません。なぜなら、これは過去に起こったことではなく、最近の変化です。

私は自分のスキームを調べました。私はpo $ arg1、po $ eaxを追加して、直接[$ arg1 reason] & [$ arg1 name]を取得しようとしました。私は何をすべきかと、これをもう一度やり直す方法がわかりません...なぜこれが起こっているのかも知れません。

EDIT:最終的には "bt" next(lldb)とタイプしてスタックトレースを印刷することができました。これが私の得意です。しかし、私はそれが何を意味するか分かりませんし、コードの特定の行を指していません。

thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2 
frame #0: 0x0000000180757e20 libc++abi.dylib`__cxa_throw 
frame #1: 0x00000001848e0cb8 libFontParser.dylib`TFileDescriptorContext::TFileDescriptorContext(char const*) + 156 
frame #2: 0x00000001849082e4 libFontParser.dylib`TFileDataReference::MapOrRead(char const*, int) + 40 
frame #3: 0x00000001848e0ae8 libFontParser.dylib`TFileDataReference::TFileDataReference(char const*) + 
frame #4: 0x00000001848e08f8 libFontParser.dylib`TFileDataSurrogate::TFileDataSurrogate(char const*, bool) + 156 
frame #5: 0x00000001849273ec libFontParser.dylib`TFont::CreateFontEntities(char const*, bool, bool&, short, char const*, bool) + 268 
frame #6: 0x0000000184928a40 libFontParser.dylib`TFont::CreateFontEntitiesForFile(char const*, bool, bool, short, char const*) + 220 
frame #7: 0x00000001848e0364 libFontParser.dylib`FPFontCreateFontsWithPath + 152 
frame #8: 0x0000000182cb1fe4 CoreGraphics`create_private_data_array_with_path + 48 
frame #9: 0x00000001829f5bd8 CoreGraphics`CGFontCreateFontsWithPath + 36 
frame #10: 0x0000000182a45084 CoreGraphics`CGFontCreateFontsWithURL + 372 
frame #11: 0x0000000182fa2fc0 GraphicsServices`AddFontsFromURLOrPath + 124 
frame #12: 0x0000000182fa663c GraphicsServices`__Initialize_block_invoke + 1020 
frame #13: 0x0000000103e1945c libdispatch.dylib`_dispatch_client_callout + 16 
frame #14: 0x0000000103e1a17c libdispatch.dylib`dispatch_once_f + 120 
frame #15: 0x0000000182fa2ae4 GraphicsServices`Initialize + 272 
frame #16: 0x000000018076943c libobjc.A.dylib`CALLING_SOME_+initialize_METHOD + 24 
frame #17: 0x0000000180769804 libobjc.A.dylib`_class_initialize + 296 
frame #18: 0x0000000180771744 libobjc.A.dylib`lookUpImpOrForward + 228 
frame #19: 0x000000018077c758 libobjc.A.dylib`_objc_msgSend_uncached + 56 
frame #20: 0x000000018b36ee54 UIKit`-[UIStatusBarForegroundStyleAttributes makeTextFontForStyle:] + 152 
frame #21: 0x000000018a6ad3f8 UIKit`-[UIStatusBarForegroundStyleAttributes textFontForStyle:] + 124 
frame #22: 0x000000018b36e95c UIKit`-[UIStatusBarForegroundStyleAttributes imageWithText:ofItemType:forWidth:lineBreakMode:letterSpacing:textAlignment:style:withLegibilityStyle:legibilityStrength:] + 312 
frame #23: 0x000000018a6ad278 UIKit`-[UIStatusBarItemView imageWithText:] + 260 
frame #24: 0x000000018a6ad0cc UIKit`-[UIStatusBarItemView updateContentsAndWidth] + 36 
frame #25: 0x000000018a6ba2f0 UIKit`-[UIStatusBarItemView initWithItem:data:actions:style:] + 432 
frame #26: 0x000000018a6ba0a8 UIKit`+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:] + 132 
frame #27: 0x000000018a6b9f2c UIKit`-[UIStatusBarLayoutManager _createViewForItem:withData:actions:] + 172 
frame #28: 0x000000018a6595e4 UIKit`-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:] + 332 
frame #29: 0x000000018a659420 UIKit`-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:] + 108 
frame #30: 0x000000018a6590d8 UIKit`-[UIStatusBarForegroundView _setStatusBarData:actions:animated:] + 544 
frame #31: 0x000000018a658d9c UIKit`-[UIStatusBarForegroundView setStatusBarData:actions:animated:] + 1196 
frame #32: 0x000000018ad0ad20 UIKit`__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke + 356 
frame #33: 0x000000018a671a84 UIKit`+[UIView(Animation) performWithoutAnimation:] + 104 
frame #34: 0x000000018ad0a7ac UIKit`-[UIStatusBar _prepareToSetStyle:animation:forced:] + 836 
frame #35: 0x000000018ad09748 UIKit`-[UIStatusBar _updateUIWithStyleAttributes:animationParameters:forced:] + 560 
frame #36: 0x000000018ad09368 UIKit`-[UIStatusBar _requestStyle:animationParameters:forced:] + 520 
frame #37: 0x000000018ae39430 UIKit`-[UIStatusBar_Base requestStyle:animationParameters:forced:] + 96 
frame #38: 0x000000018a6e8758 UIKit`-[UIApplication _setStatusBarStyle:animationParameters:] + 168 
frame #39: 0x000000018a66aaa8 UIKit`-[UIApplication _updateCurrentStatusBarViewControllerAppearance] + 276 
frame #40: 0x000000018a91a7b0 UIKit`-[UIWindow _updateLayerOrderingAndSetLayerHidden:] + 616 
frame #41: 0x000000018a6675dc UIKit`-[UIWindow _setHidden:forced:] + 228 
frame #42: 0x000000018a6cde98 UIKit`-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:] + 664 
frame #43: 0x000000018a8cb430 UIKit`-[UIApplication _runWithMainScene:transitionContext:completion:] + 1020 
frame #44: 0x000000018ab59454 UIKit`__111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 800 
frame #45: 0x000000018ae291f0 UIKit`+[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 160 
frame #46: 0x000000018ab590b8 UIKit`-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 252 
frame #47: 0x000000018ab59928 UIKit`-[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 748 
frame #48: 0x000000018b2c26e8 UIKit`__82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 260 
frame #49: 0x000000018b2c258c UIKit`-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 448 
frame #50: 0x000000018b03e9c0 UIKit`__125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 220 
frame #51: 0x000000018b1d3fc8 UIKit`_performActionsWithDelayForTransitionContext + 112 
frame #52: 0x000000018b03e870 UIKit`-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 252 
frame #53: 0x000000018ae28850 UIKit`-[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 364 
frame #54: 0x000000018a8c9e28 UIKit`-[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 540 
frame #55: 0x000000018accd6ec UIKit`-[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 364 
frame #56: 0x00000001838f5768 FrontBoardServices`-[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 364 
frame #57: 0x00000001838fe070 FrontBoardServices`__56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 224 
frame #58: 0x0000000103e1945c libdispatch.dylib`_dispatch_client_callout + 16 
frame #59: 0x0000000103e25b74 libdispatch.dylib`_dispatch_block_invoke_direct + 268 
frame #60: 0x0000000183929a04 FrontBoardServices`__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36 
frame #61: 0x00000001839296a8 FrontBoardServices`-[FBSSerialQueue _performNext] + 404 
frame #62: 0x0000000183929c44 FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 56 
frame #63: 0x00000001811fc358 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 
frame #64: 0x00000001811fc2d8 CoreFoundation`__CFRunLoopDoSource0 + 88 
frame #65: 0x00000001811fbb60 CoreFoundation`__CFRunLoopDoSources0 + 204 
frame #66: 0x00000001811f9738 CoreFoundation`__CFRunLoopRun + 1048 
frame #67: 0x000000018111a2d8 CoreFoundation`CFRunLoopRunSpecific + 436 
frame #68: 0x0000000182fabf84 GraphicsServices`GSEventRunModal + 100 
frame #69: 0x000000018a6c7880 UIKit`UIApplicationMain + 208 
frame #70: 0x000000010066ffc0 AppName`main at AppDelegate.swift:21 
frame #71: 0x0000000180c3e56c libdyld.dylib`start + 4 
+0

また、私は突然非常に似ているエラーを受け取りました(フォントの問題についての同じ奇妙なスタックトレース)。 Xcode 9のストーリーボードやその他のコードに変更を加えた後に得ました。変わったことは、これらの変更を行う前に、Xcode 9でビルドすることができたことです.Xcode 9にアップグレードしていませんでした。 –

答えて

3

免責事項:この修正では、ストーリーボードにカスタムフォント(システム以外の、すなわちフォント)を使用しようとしていない場合にのみです。あなたがストーリーボードにカスタムフォントを持っている場合、私はその問題が何であるか分かりません。私の場合、それは事故だった。ストーリーボードからカスタムフォントを除去することにより、

修正:

私はいくつかの変更を行うためにXcodeの9で私のストーリーボードを開きました。それから、アプリを走らせて...クラッシュ! (最初のビュー・コントローラーにも到達しなくても)スタック・トレースでFontに関する奇妙なことに気付きました(上記のスタック・トレースに似ています)。

その後、私は私のストーリーボードのXMLファイルを見て(私は代わりのXcodeのVimを使ってストーリーボードを開く)と、上部付近に、このブロックに気づいた:

<customFonts key="customFonts"> 
    <array key="HelveticaNeue.ttc"> 
     <string>HelveticaNeue</string> 
    </array> 
</customFonts> 

私は私のストーリーボードを開いたときに、このブロックは自動的に追加されました明らかに、私は特定のラベルにカスタムフォントを使用していたためです。

これを解決するために、Xcodeでストーリーボードを開き、HelveticaNeueをSystemの代わりに誤って使用したラベルをすべて検索するために "helv"を検索しました。これらすべてのラベルをSystemを使用するように変更すると、Xcodeはクラッシュを引き起こしていた上記のXMLブロックを自動的に削除します。

これが誰かを助けることを願っています!

+0

私もHelveticaNeueを使用しています。もしこれが共有の問題であれば、おそらくこれでしょう。 – Jay

+0

私はまったく同じ問題を抱えていて、ストーリーボードは使用していません。私はxibsを見て、Menloカスタムフォントを発見しました。私がAfftectedコントロールをSystemフォントに戻すと、問題は即座に解決されました。 –

関連する問題