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.
copia semplicemente la versione corrente che hai in un altro progetto, aggiornala per renderla la versione gratuita e dai il proprio ID app – denil
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