2010-11-10 10 views
10

Spesso trovo che ho bisogno di avere una build sul mio iPhone, che è la mia versione "demo-ready" che potrebbe puntare al mio server demo. Voglio anche una build che sia l'ultima e più grande build di debug che sto sviluppando con quel punto sul mio server di sviluppo. Qualcuno ha trovato un modo molto semplice per me di installare due app che forse sono lo stesso codice ma puntano a server diversi? In alternativa forse avrei un'app che era qualche versione dietro l'ultima versione? Preferibilmente userei lo stesso progetto XCode per costruire e installare su iPhone.Qual è il modo migliore di utilizzare XCode per installare più build della stessa app iOS sul tuo iPhone?

risposta

9

È possibile aggiungere configurazioni speciali costruire per loro che ogni utilizzo di un file Info.plist diverso. Quindi, forse per la tua demo, hai un info.plist chiamato MyApp-Info-DEMO.plist e MyApp-Info.plist per il rilascio.

allora si potrebbe aggiungere la variabile del server come variabile info.plist e guardare in su quando l'applicazione si avvia. O anche solo creare una dichiarazione DEFINE nella tua nuova configurazione che è qualcosa come SERVER = demo.myserver.com per la demo e SERVER = production.myserver.com per la diretta.

La parte più importante è quello di cambiare il CFBundleIdentifier nel nuovo Info.plist. Quindi nella tua demo potresti chiamarlo qualcosa come com.mycompany.myapp.DEMO e quello vero potrebbe essere com.mycompany.myapp.

Questo permetterà entrambe le versioni di apparire al telefono allo stesso tempo (le diverse CFBundleIdentifiers). Ricorda, se utilizzi gli acquisti in-app o le notifiche push del server, non potrai farlo senza un profilo specifico separato per il tuo identificatore di app reale e per quello demo.

+5

Invece di file separati, puoi anche usare '$ (BUNDLE_IDENTIFIER)' nel tuo file Info.plist, quindi impostarne il valore come impostazione di creazione definita dall'utente. – benzado

1

Con la versione corrente di Xcode, è possibile ottenere questo risultato modificando il file Info.plist dell'app per utilizzare un identificatore di bundle diverso (e possibilmente anche modificare il nome prodotto dell'app nelle impostazioni di generazione).

La prossima versione di Xcode, da quello che ho letto nella documentazione prerelease, ha una caratteristica che può semplificare ciò che si vuole fare un po '. Tuttavia, poiché il software pre-release è coperto dalla NDA, non posso fornirti alcun dettaglio.

2

Si potrebbe creare 2 diversi target con 2 info.plists diversi e 2 diversi definisce preprocessore (nelle impostazioni di generazione per ciascuno dei 2 obiettivi). Quindi ifdef sul preprocessore definisce per selezionare la costante del server che il compilatore utilizza per ciascun target.

Quindi rendere il nome del prodotto e l'ID del gruppo diversi nelle due diverse impostazioni di destinazione (in modo che né il dispositivo né il simulatore possano confondere i due pacchetti di app).

Problemi correlati