Vraag Toepassing kon niet op tijd worden gestart


Hoe kan ik een diagnose van deze fout maken?

Application Specific Information:
    MyApp failed to launch in time

    Elapsed total CPU time (seconds): 4913.443 (user 3868.270, system 1045.173), 56% CPU 
    Elapsed application CPU time (seconds): 0.010, 0% CPU

    Backtrace not available

    Unknown thread crashed with unknown flavor: 5, state_count: 1

    Binary Images:
    0x2fe00000 - 0x2fe26fff  dyld armv7  <a11905c8ef7906bf4b8910fc551f9dbb> /usr/lib/dyld

Hier is mijn didFinishLaunching methode:

#pragma mark -
#pragma mark Application lifecycle

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

        if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")) 
        {
            NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
        }

        // Override point for customization after application launch.
        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];

        //Check for connectivity
        internetReach = [[Reachability reachabilityForInternetConnection] retain];
        [internetReach startNotifer];
        [self updateInterfaceWithReachability: internetReach];

        [window addSubview:navigationController.view];
        [window makeKeyAndVisible];

        return YES;
    }

10
2017-10-11 18:19


oorsprong


antwoorden:


U doet waarschijnlijk veel instellingswerk in uw AppDelegate's toepassing: didFinishLaunching methode.

U moet ervoor zorgen dat deze functie zo snel mogelijk wordt afgesloten. Elke set-up die tijd kost (bijvoorbeeld netwerktoegang) moet asynchroon worden uitgevoerd in uw applicatie. Terwijl dit aan de hand is, kunt u een draaifunctie tonen om aan de gebruiker aan te geven dat de toepassing wordt geladen.


28
2017-10-11 18:23



Om zo informatie aan het antwoord van Philippe Leybaert toe te voegen.
Als de toepassing te veel tijd nodig heeft om te starten, wordt de hoofdthread gedood, waardoor de toepassing vastloopt.

  • Wanneer je de simulator gebruikt, het zal niet crashen.
  • Wanneer u uw iphone gebruikt die is verbonden met xcode het zal niet crashen.
  • Wanneer u het voor de App Store verzendt kan worden geaccepteerd als de Apple-tester een snelle iPhone gebruikt
  • Wanneer uw gebruikers traag werken zoals de iPhone 3S zal crashen 

Een manier om deze issu te testen voordat je deze verzendt, is door te deployen naar testvlucht of met adhoc en installeer het op het langzamere apparaat dat u wilt ondersteunen.


5
2018-05-22 13:05



Probeer gewoon uw toepassing te verdelen: didFinishLaunchingWithOptions: methode code voor verschillende functie-aanroepen en maak die oproepen op de achtergrond met behulp van de andere threads dan main en zorg ervoor dat de applicatie: didFinishLaunchingWithOptions: methode zo snel mogelijk terugkomt

je kunt gebruiken

dispatch_async(dispatch_get_main_queue(), ^{
//put your code
}

Ik heb het probleem met deze code opgelost!


1
2017-10-10 13:12