Geri Borbás
Geri Borbás

Reputation: 16628

Application Specific Information: Application failed to launch in time (iOS)?

This is on the top of one of my crash reports. Is there any App Launch timeout limit determined by Apple? Any common workaround if so?

Elapsed total CPU time (seconds): 13.700 (user 8.580, system 5.120), 67% CPU 
Elapsed application CPU time (seconds): 6.180, 30% CPU

On an iPhone 3G.

I have to split/delay my launching tasks maybe...

Upvotes: 4

Views: 3833

Answers (1)

Nick Lockwood
Nick Lockwood

Reputation: 41005

I think it has to launch within 5 (or maybe 10) seconds or the iPhone assumes it has crashed.

Try to avoid loading a lot of stuff on your main thread at launch. If you need to load a lot of stuff do it on a background thread, like this:

- (void)startLoading
{
    //call this in your app delegate instead of setting window.rootViewController to your main view controller
    //you can show a UIActivityIndiocatorView here or something if you like

    [self performSelectorInBackground:@selector(loadInBackground)];
}

- (void)loadInBackground
{
    //do your loading here
    //this is in the background, so don't try to access any UI elements

    [self performSelectorOnMainThread:@selector(finishedLoading) withObject:nil waituntilDone:NO];
}

- (void)finishedLoading
{
    //back on the main thread now, it's safe to show your view controller
    window.rootViewController = viewController;
    [window makeKeyAndVisible];
}

Upvotes: 10

Related Questions