title: iOS app failed to launch in time 0x000000008badf00d - delay in applicationDidBecomeActive
body: <p>I put entire <code>didFinishLaunchingWithOptions</code> with minimal code which is here:</p>
  
  <pre><code> [UIApplication sharedApplication].idleTimerDisabled = YES;
   m_bDataLoadingNeeded = YES;
   return YES;
  </code></pre>
  
  <p>As a result, I had to put crucial initialization in <code>applicationDidBecomeActive</code>.
  Yet, I get the above error.</p>
  
  <p>All references I get about it mentions to complete <code>didFinishLaunchingWithOptions</code> sooner which I have done. Is there any check required for <code>applicationDidBecomeActive</code>?</p>
  
  <p>My crash log is here (somehow, I can't symbolicate it with all dsym and app in place, so I can't know which statement is exact culprit. But everyone can see that it is definitely not <code>didFinishLaunchingWithOptions</code>)</p>
  
  <pre><code>Exception Type:  00000020
  Exception Codes: 0x000000008badf00d
  Highlighted Thread:  0
  
  Application Specific Information:
  &lt;MyBundleID&gt; failed to launch in time
  
  Elapsed total CPU time (seconds): 1.600 (user 1.600, system 0.000), 4% CPU 
  Elapsed application CPU time (seconds): 0.438, 1% CPU
  
  Thread 0 name:  Dispatch queue: com.apple.main-thread
  Thread 0:
  0   libsystem_kernel.dylib          0x3c66f0fc 0x3c65e000 + 69884
  1   libsystem_c.dylib               0x3c5b8124 0x3c5b7000 + 4388
  2   SystemConfiguration             0x360d43ca 0x360c0000 + 82890
  3   MyApp                           0x001cd406 0xf9000 + 869382
  4   MyApp                           0x001ccb78 0xf9000 + 867192
  5   MyApp                           0x001cd148 0xf9000 + 868680
  6   MyApp                           0x001d77e4 0xf9000 + 911332
  7   MyApp                           0x001d7ed0 0xf9000 + 913104
  8   MyApp                           0x001cd908 0xf9000 + 870664
  9   MyApp                           0x001d46e0 0xf9000 + 898784
  10  MyApp                           0x000fb870 0xf9000 + 10352
  11  UIKit                           0x36177af6 0x36102000 + 482038
  12  UIKit                           0x3615d9bc 0x36102000 + 375228
  13  UIKit                           0x36105c34 0x36102000 + 15412
  14  UIKit                           0x361056c8 0x36102000 + 14024
  15  UIKit                           0x36105116 0x36102000 + 12566
  16  GraphicsServices                0x37dfb5a0 0x37df5000 + 26016
  17  GraphicsServices                0x37dfb1ce 0x37df5000 + 25038
  18  CoreFoundation                  0x342d2170 0x3423b000 + 618864
  19  CoreFoundation                  0x342d2112 0x3423b000 + 618770
  20  CoreFoundation                  0x342d0f94 0x3423b000 + 614292
  21  CoreFoundation                  0x34243eb8 0x3423b000 + 36536
  22  CoreFoundation                  0x34243d44 0x3423b000 + 36164
  23  UIKit                           0x3615c480 0x36102000 + 369792
  24  UIKit                           0x361592fc 0x36102000 + 357116
  25  MyApp                           0x000fb4be 0xf9000 + 9406
  26  MyApp                           0x000fb474 0xf9000 + 9332
  </code></pre>
  
  <p><strong>Considering <code>applicationDidBecomeActive</code> is indeed the culprit:</strong></p>
  
  <p>I can move my <code>applicationDidBecomeActive</code> initialization inside background thread - something quite simplistic <a href="https://stackoverflow.com/questions/9241008/application-specific-information-application-failed-to-launch-in-time-ios">like this</a>, but I am not sure what other things I will have to do, because this initialize code will in turn internally spawn more threads. I am using AFNetworking, Reachability and other frameworks which are block based. I don't know if I will end up so doing so many modifications to already built architecture and common code. </p>
  
  <p>I am pretty confused how to tackle this in best and shortest possible way.</p>