Comment puis-je créer plusieurs versions de la même application iOS pour les OEM?

J'ai une application iOS existante dont j'ai besoin pour build et publier plusieurs versions de différents clients.

Cette application s'interface avec du matériel disponible auprès d'une poignée de sociétés différentes, le matériel est identique mais chaque entreprise vend le matériel sous un nom différent

Ceci est une application gratuite, l'objective n'est pas de spammer l'appstore avec plusieurs versions de la même application, l'objective est de permettre aux entresockets qui vendent du matériel de marque d'avoir une application mobile qui utilise le nom de marque qu'ils utilisent pour le matériel.

Ce que je dois être capable de faire:

  • Construire plusieurs versions de la même application qui peuvent être soumises à l'Appstore, chaque version sera soumise sous un count apple différent de l'entreprise. Je suppose que cela signifie plusieurs projets afin que chaque projet puisse utiliser un profil d'approvisionnement spécifique à l'entreprise
  • Chaque version a des images différentes (icône, image de démarrage, peut-être quelques autres)
  • Chaque version a des strings différentes (nom de l'entreprise, nom du produit, peut-être quelques autres)

Avec Android, je viens de créer un projet de bibliothèque et je peux replace les strings et les images avec un effort insignifiant.

Avec iOS, je n'ai pas trouvé de réponse évidente.

J'ai envisagé d'append une nouvelle cible à mon projet existant mais je ne pense pas que cela fonctionnera: – Je n'arrive pas à comprendre comment replace les images au-delà de l'icône et de l'écran de démarrage – Je ne sais pas comment replace les strings Serais-je capable d'utiliser différents profils de provisioning pour les différentes applications qui comstacknt avec le même projet? Je sais que les parameters cible autorisent différents profils d'approvisionnement, mais les parameters du projet n'ont-ils pas leur propre set de profils d'approvisionnement?

Puis-je empackageer l'application actuelle dans une bibliothèque que d'autres projets peuvent utiliser et replace des images / strings? Ainsi, chaque version aurait son propre projet xCode mais utiliserait le même code.

Peut-être que je dois travailler plus avec l'idée de cibles multiples …

J'utilise xCode 4.2, mais je suis prêt à passer à une version plus récente si nécessaire

Créez plusieurs cibles qui utilisent différents files Info.plist. La plus grande différence sera d'identifier différents packages. Vous pouvez également définir différentes macros de préprocesseur qui contrôleront la compilation conditionnelle de plusieurs blocs de code.

Alternativement / en plus, vous pouvez mettre vos parameters de configuration de construction (y compris l'location changeant du file Info.plist) dans les files * .xcconfig et referencer ceux dans votre projet, info, configurations. Ensuite, vous pouvez créer une version différente de votre application en modifiant simplement votre schéma. Mettre les parameters de configuration de construction dans les files est une énorme victoire pour le contrôle de la configuration aussi.

Voici un lien vers la configuration des files * .xcconfig: http://itcoding.blogspot.com/2011/03/using-xcconfig-abandoning-build-panel.html . J'ai vu d'autres articles comme celui-ci – mais celui-ci vous aidera à démarrer.

Bonne chance.

Je l'ai fait différemment lors de ma dernière entreprise, où nous avons généré environ 8 applications à partir d'un référentiel source primaire.

Nous avons créé un projet qui nécessitait une class externe, appelons-la Config. Cette class a partagé les informations uniques qui rendent chaque application unique.

Ensuite, pour créer une application, vous créez votre projet App, incluez la "bibliothèque" commune, fournissez le file Config.m (Config.h est commun), ajoutez les images uniques, etc.