sviluppatore - test ios app on device




Simulatore iPhone-come rilevare quando l'app è in esecuzione sul simulatore(quindi è possibile impostare i dati di test)? (2)

Il blocco di codice che ha funzionato per me:

#if defined(__i386__)  || defined(__x86_64__)
    /* Run code if in Simulator */
#else
    /* Run code if in device */
#end

Ho notato che __i386__ non funziona con i simulatori per iPhone 6, quindi ho aggiunto x86_64

Qualsiasi codice di esempio che mi indichi come, nel codice dell'applicazione iPhone:

  1. Come rilevare se l'applicazione è stata appena DEPLOYED per essere eseguita su un simulatore (e non su un dispositivo) [se "Distribuito" non è disponibile, quindi è sufficiente rilevare quando l'app viene eseguita sul simulatore anziché su un dispositivo)
  2. Nel mio codice dell'app per iPhone dovrei inserire le linee che configurano i miei dati di test nel simulatore - questo è il fatto che volevo che i dati del test fossero cancellati in modo pulito / re-instati ogni volta che ricompilavo e spingevo al simulatore (tuttavia io non volevo davvero che questo codice venisse eseguito durante l'utilizzo dell'applicazione nel simulatore, ad esempio dovrei essere in grado di scambiare app nel simulatore e quando riavvio la mia app nel simulatore non dovrebbe eseguire il codice di configurazione dei dati

Qualsiasi altro suggerimento migliore su come gestire i dati di questo test sul simulatore sarebbe buono. Lo sfondo è che sto parlando di dati di test nel calendario (ad es. Utilizzando il Event Kit), quindi non voglio che l'app inserisca gli elementi del calendario nel mio iPhone quando eseguo il deploy sul mio dispositivo (mi dispiace - ho solo 1 personale iPhone qui).


Ovviamente uso qualcosa del genere ...

#import <TargetConditionals.h>

#if TARGET_IPHONE_SIMULATOR

// Simulator specific code

#else // TARGET_IPHONE_SIMULATOR

// Device specific code

#endif // TARGET_IPHONE_SIMULATOR

E alla tua seconda domanda ... Qualcosa del genere dovrebbe aiutarti. Nel delegato dell'app:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  if ( ! [[NSUserDefaults standardUserDefaults] boolForKey:@"initialized"] ) {
    // Setup stuff
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"initialized"];
  }

  ... your code ...
}






test-data