2012-07-13 9 views
18

Ho un'applicazione iOS esistente che devo essere in grado di creare e rilasciare più versioni di diversi client.Come creare più versioni della stessa applicazione iOS per gli OEM

Questa applicazione si interfaccia con l'hardware che è disponibile da una manciata di diverse aziende, l'hardware è identico, ma ogni azienda vende l'hardware con un nome diverso

Questa è un'applicazione gratuita, l'obiettivo non è quello di spam App Store con più versioni della stessa app, l'obiettivo è consentire alle aziende che vendono hardware rebrandato di avere un'app mobile che utilizza il nome del marchio che utilizzano per l'hardware.

Quello che ho bisogno di essere in grado di fare:

  • creare più versioni della stessa applicazione che può essere presentato al Appstore, ogni versione saranno presentate sotto un altro account società mela. Suppongo che questo significhi più progetti in modo che ogni progetto possa utilizzare un profilo di provisioning specifico dell'azienda
  • Ogni versione ha alcune immagini diverse (Icona, immagine di avvio, forse alcune altre)
  • Ogni versione ha alcune stringhe diverse (Nome dell'azienda , Nome prodotto, forse alcuni altri)

Con Android ho appena creato un progetto di libreria e posso eseguire l'override di stringhe e immagini con una quantità minima di sforzo.

Con iOS non ho trovato una risposta ovvia.

Ho esaminato l'aggiunta di un nuovo target al mio progetto esistente ma non penso che funzionerà: - Non riesco a capire come sostituire le immagini oltre l'icona e la schermata iniziale - Non riesco a capire Come sostituire le stringhe - Sarei in grado di utilizzare diversi profili di provisioning per le diverse app che vengono compilate con lo stesso progetto? So che le impostazioni di destinazione consentono profili di provisioning diversi, ma le impostazioni del progetto non hanno il proprio set di profili di provisioning?

È possibile pacchettizzare l'applicazione corrente in una libreria che altri progetti possono utilizzare e sostituire immagini/stringhe? Quindi ogni versione avrebbe il proprio progetto xCode ma utilizzerà lo stesso codice.

Forse ho bisogno di lavorare di più con l'idea di bersagli multipli ...

Sto usando xCode 4.2, ma sono pronto a passare a una versione più recente, se necessario

+0

È possibile controllare questo blog postare qui parlando di come fare tutto questo http://khaledannajar.blogspot.com/2017/02/how-to-use-targets-to-launch-multiple.html –

+0

è possibile trovare la risposta se si inizia a guardarsi intorno implementando File '.xcconfig' per i tuoi obiettivi. – holex

risposta

11

Creare obiettivi multipli che utilizzano diversi file Info.plist. La più grande differenza sarà identificatori di bundle diversi. È inoltre possibile definire diverse macro del preprocessore che controlleranno la compilazione condizionale di vari blocchi di codice.

In alternativa/in aggiunta, è possibile inserire le impostazioni di configurazione della build (inclusa la posizione di modifica del file Info.plist) nei file * .xcconfig e fare riferimento a quelli nell'area del progetto, informazioni, configurazioni. Quindi, puoi creare una versione diversa della tua app semplicemente cambiando il tuo schema. Mettere le impostazioni di configurazione della compilazione in file è una grande vittoria anche per il controllo della configurazione.

Questo è un collegamento all'impostazione di file * .xcconfig: http://itcoding.blogspot.com/2011/03/using-xcconfig-abandoning-build-panel.html. Ho visto anche altri articoli come questo - ma questo ti farà iniziare.

Buona fortuna.

+0

Gli obiettivi multipli con diversi file info.plist sono esattamente ciò di cui avevo bisogno. L'altra parte stava avendo cartelle separate per immagini per ogni oem, e in xCode assicurati che le immagini siano impostate per essere incluse solo con il target corretto – snctln

3

L'ho fatto diversamente nella mia ultima azienda, dove abbiamo generato circa 8 app da un repository di fonti primarie.

Abbiamo creato un progetto che richiedeva una classe esterna, chiamata Config. Quella classe ha distribuito le informazioni uniche che rendono unica ogni app.

Poi a girare un app si crea il progetto di App, includere la "biblioteca" comune, fornire il file Config.m (config.h è comune), aggiungere le immagini uniche ecc

+0

ho fatto lo stesso con il mio primo progetto ... oggi è un dolore nel culo ... :) –

+0

è necessario gestire più progetti e tenerli sempre aggiornati. Spero che lo hai fatto con uno strumento di controllo della versione. –

+2

@TommasoResti l'ho fatto. Se trovi un modo migliore per farlo pubblicalo qui, come risposta alternativa. È possibile che tu possa avere un progetto con più target in esso. –

Problemi correlati