2012-01-23 10 views
15

Ho tre configurazioni nel mio progetto iOS:Configurazione valore dipendente nel file Info.plist

  1. Debug
  2. Adhoc
  3. uscita

Ora voglio cambiare il nome del App come segue:

  1. MyAppDebug
  2. MyAppAdhoc
  3. MyApp (Si noti che questo non ha un suffisso)

C'è un modo posso facilmente raggiungere questo obiettivo in Xcode con qualche tipo di "compilatore-if-else-macro -thing "?

+0

possibile duplicato di [Tre App leggermente diverse da una base di codice] (http://stackoverflow.com/questions/8956263/three-slightly-different-apps-from-one-code-base) – Besi

risposta

29
  • Cambiare nome di visualizzazione di app per rispettive configurazioni * Un modo per raggiungere questo obiettivo è quello di utilizzare lo stesso file plist informazioni che avete.

    1. Creare una variabile definita dall'utente. Fare clic sul file di progetto di destinazione.
    2. Quindi, nell'angolo in basso a destra, individuare il pulsante "+" Aggiungi impostazioni di creazione.
    3. Fare clic sul pulsante "Aggiungi impostazioni di creazione" e selezionare "Aggiungi definito dall'utente Impostazione" immettere il nome per Nuova impostazione come per es: "BUNDLE_DISPLAY_NAME".
    4. Espandi questa nuova impostazione per vedere le configurazioni sotto di essa. Dare il nome desiderato da visualizzare per ogni configurazione. Per es: Debug -> MyAppDebug

Parte 2:

  1. selezionare il file appname-Info.plist.
  2. Individuare tasto "Bundle Display Name" ed il valore ad essa dovrebbe essere questo nuovo utente definito variabile $ {} BUNDLE_DISPLAY_NAME

Poi per la configurazione appropriata sarà selezionare il nome da variabile BUNDLE_DISPLAY_NAME in impostazioni di generazione.

+0

Questa è un'ottima risposta.È un'informazione molto preziosa per chiunque stia mantenendo 2 versioni dell'app (Release/Production). – polterfest

+0

questo è il modo migliore per farlo. – Jon

4

Sicuro. Per prima cosa devi creare un file Info.plist separato per ogni configurazione. Quindi, nelle impostazioni di costruzione del progetto, trova la riga su cui è posizionato Info.plist, espandi quella linea e scegli il file Info.plist separato per ogni configurazione che hai. Quindi puoi inserire il nome desiderato nel campo corrispondente in ciascun file Info.plist. Questo è tutto :)

+1

E 'possibile fai questo, ma non è necessario ripetere tutti i valori per ogni plist? O forse è possibile che il valore di una chiave nel plist principale corrisponda dinamicamente a un plist di configurazione? – farski

+0

Sì, creare un'impostazione di generazione definita dall'utente, quindi in base alla configurazione per cui si sta creando, utilizzare tale valore. – ganders