2011-11-02 6 views
9

Ho la mia app con ID com.miodominio.AppName che è una versione pagata.Due versioni dell'app iOS - Libero e a pagamento - come modificare in modo condizionale l'ID progetto in XCode?

Ho deciso di introdurre la versione gratuita e tramite il mio codice aggiungo facilmente annunci/rimuovo alcune funzionalità con il semplice # defined/# ifdef business.

Tuttavia, ho bisogno che il mio ID app sia diverso per la versione gratuita. Come faccio a farlo condizionatamente (ad es. #ifdef FREE_VERSION ... ecc.) Per la mia app?

+0

copia semplicemente la versione corrente che hai in un altro progetto, aggiornala per renderla la versione gratuita e dai il proprio ID app – denil

+1

Solo per i nuovi utenti, più target è il modo migliore in questo caso. È possibile assegnare le risorse a diversi target mentre si condividono asset e codici esistenti tra i target. Puoi anche usare la macro pre-compilatore per decidere quale target sta usando il tuo codice. – Maziyar

risposta

0

È possibile ottenere questo risultato con diversi progetti XCode, uno per ogni tipo di app che si basa su un codice comune (ovvero i progetti XCode della libreria). Un progetto XCode sarebbe per l'app a pagamento e avrebbe diverse macro, funzioni di configurazione. L'altro progetto XCode sarebbe per l'app gratuita. Entrambi i progetti le Apps possono includere fonti condivise - che sarebbe stato redatto sulla base delle macro (PAGATO o GRATIS) ecc

15

La questione è stata risolta in un previous post

L'idea di base è che si crea due obiettivi e quindi utilizzare #ifdefs o creare file separati per controllare il contenuto nelle due destinazioni. Creare un altro bersaglio è semplice e semplice. Basta fare clic con il pulsante destro del mouse sul target esistente e duplicarlo. Dagli il nome che vuoi per l'app gratuita.

Nel tuo caso, probabilmente vorrai avere icone diverse per il gioco gratuito ea pagamento, quindi crea due cartelle di icone, una chiamata Free-Icons e l'altra chiamata Paid-Icons. Inseriscili nella cartella del progetto e, quando li importi, li allega a uno dei bersagli.

Ho duplicato i file Info.plist e Prefix.pch originali e ho dato loro nomi diversi, ma si potevano usare gli stessi nomi, basta metterli in cartelle diverse. Avrai bisogno di regolare le impostazioni di costruzione per ciascun target in modo che riflettano i nuovi nomi.

Potresti anche avere meno contenuti nell'app gratuita. Basta selezionare i suoni e le immagini che si trovano solo nell'app a pagamento e nell'ispettore contrassegnare l'iscrizione di destinazione come solo l'app a pagamento.

Avrai anche bisogno di modificare i tuoi schemi in modo da poterne costruire due versioni. Ho appena finito di farlo per un progetto a cui sto lavorando e ci sono volute circa due ore dall'inizio alla fine per trovare tutto ciò che era necessario cambiare. Immagino di poter aggiungere un'altra versione in circa 15 minuti ora che so cosa sto facendo.

Questo modo di procedere è molto meglio della duplicazione del codice o dello scambio del contenuto in una base di codice, poiché è possibile passare facilmente da una destinazione all'altra per assicurarsi che tutto funzioni quando si apportano modifiche.

+1

Se non ti dispiace avere la stessa icona gratuita e a pagamento, puoi semplicemente modificare l'ID del bund nell'ID del pacchetto e poi il nome del prodotto e ricompilarlo. Quindi, nel codice, controlla l'ID del gruppo per determinare se è pagato o gratuito. – jjxtra

Problemi correlati