2013-12-12 12 views
7

Ho un problema strano con un'app iOS di PhoneGap. Ho una versione senza pubblicità approvata e funziona perfettamente nell'app store e una nuova versione con pubblicità che è stata rifiutata a causa dell'app appesa alla schermata iniziale.AVVISO: lenta l'accesso predefinito per la chiave Interno ha impiegato xx secondi, la tolleranza è 0.020000

La differenza nelle app è 3 plug-in di annunci, iAD, admob e revmob. L'app funziona bene, ma una volta ogni tanto si blocca sullo splash screen come suggerisce il feedback di Apple, non riesco a trovare che cosa si verifichi.

L'unico indizio che ho è "ATTENZIONE: l'accesso di default lento per chiave interna ha 0.039977 secondi, la tolleranza è 0,020 mila" che appare nella console errore, ma quando questo viene visualizzato l'app funziona ancora bene.

È probabile che questo avviso si riferisca al problema di splashscreen? Qualche idea su come affrontare il problema o su cosa cercare che potrebbe causarlo?

Grazie

+0

assicurarsi di non fare calcoli prima che l'app inizi davvero. Se impiega troppo tempo, l'app sarà costretta a bloccarsi dal sistema operativo. Se hai bisogno di fare qualcosa che richiede qualche secondo (fai una copia di un grande file la prima volta) fallo nel tuo primo VC dopo viewDidLoad (o in viewDidLoad in un metodo chiamato da performSelector: afterDelay: .1) – Daniel

risposta

1

I don `t che questa sia la ragione e si sono probabilmente sempre presente sul simulatore che non è così efficace come il dispositivo.

La ragione per la fine del lancio il 90% delle volte è qualcosa che si fa nella vostra applicazione delegato, più precisamente in

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

evitare di fare i compiti lunghi in là, come le connessioni di rete o la manipolazione di dati di grandi dimensioni e se hai ancora bisogno di fare qualcosa in là e `t sposta al vostro metodo di viewDidLoad farlo in un altro thread in questo modo:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 
[self performSelectorInBackground:@selector(fetchUserInfoFromDB) withObject:nil]; 


return YES; 
} 

-(void)fetchUserInfoFromDB 
{ 
//Do what you need to do in here 
sleep(5); 
NSLog(@"The app lanuched but I am still running in the background, Yay!!"); 

} 

Buona fortuna

+0

Ops, ho appena ho notato la parte PhoneGap che presumo genererebbe il file binario per te con te senza controllo del codice. Ad ogni modo, spero che la mia risposta aiuti gli altri che affrontano questo problema quando sviluppano le loro app usando xcode e l'obiettivo c –

Problemi correlati