Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CGContextSaveGState: invalid context 0x0 at App Launch

I have set CG_CONTEXT_SHOW_BACKTRACE environnement variable to YES because I had a the following error CGContextSaveGState: invalid context 0x0.

The following stacktrace didn't help me much.

<Error>: CGContextSaveGState: invalid context 0x0. Backtrace:
      <-[UIStatusBarBatteryItemView contentsImage]+773>
       <-[UIStatusBarItemView updateContentsAndWidth]+36>
        <-[UIStatusBarItemView initWithItem:data:actions:style:]+503>
         <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+159>
          <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+168>
           <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+3
            <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+108>
             <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+951>
              <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+874>
               <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+443>
                <+[UIView(Animation) performWithoutAnimation:]+82>
                 <-[UIStatusBar _prepareToSetStyle:animation:forced:]+935>
                  <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+404>
                   <-[UIStatusBar requestStyle:animationParameters:forced:]+490>
                    <-[UIStatusBar requestStyle:animated:forced:]+113>
                     <-[UIStatusBar forceUpdateStyleOverrides:]+97>
                      <-[UIStatusBar _evaluateServerRegistration]+294>
                       <-[UIStatusBar didMoveToSuperview]+33>
                        <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+683>
                         <-[UIView(Hierarchy) _postMovedFromSuperview:]+484>
                          <-[UIView(Internal) _addSubview:positioned:relativeTo:]+2305>
                           <-[UIView(Hierarchy) addSubview:]+56>
                            <-[UIStatusBarWindow setStatusBar:]+311>
                             <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+384>
                              <-[UIApplication _runWithMainScene:transitionContext:completion:]+1047>
                               <__84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invo
                                <-[UIApplication workspaceDidEndTransaction:]+163>
                                 <__37-[FBSWorkspace clientEndTransaction:]_block_invoke_2+71>
                                  <__40-[FBSWorkspace _performDelegateCallOut:]_block_invoke+54>
                                   <-[FBSSerialQueue _performNext]+184>
                                    <-[FBSSerialQueue _performNextFromRunLoopSource]+52>
                                     <FBSSerialQueueRunLoopSourceHandler+33>
                                      <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+15>
                                       <__CFRunLoopDoSources0+523>
                                        <__CFRunLoopRun+1032>
                                         <CFRunLoopRunSpecific+470>
                                          <CFRunLoopRunInMode+123>
                                           <-[UIApplication _run]+540>
                                            <UIApplicationMain+160>
                                             <main+94>

The error is happening at launch and there seems to be a problem with the Battery view. Does this error ring any bell to you ?

FWW my app is mostly written in Swift 2.0, on iOS9 with Xcode 7b6.

like image 692
Matthieu Riegler Avatar asked Aug 30 '15 18:08

Matthieu Riegler


1 Answers

I have encountered the same issue, and the cause of it was, I was playing around with setting different status bar styles for different screens. Therefore and I needed to add "View controller-based status bar appearance" key inside plist. And the warning goes away if I remove this key.

like image 105
Centurion Avatar answered Oct 20 '22 15:10

Centurion