Estoy desarrollando 2 aplicaciones diferentes que comparten el 95% del mismo código y vistas. ¿Cuál es la mejor manera de hacerlo con Xcode?¿Cómo crear varias aplicaciones desde el mismo código compartido en Xcode?
17
A
Respuesta
35
Utilice los objetivos. Para eso son exactamente.
Learn more about the concept of targets here.
Normalmente, la mayoría de los proyectos tienen un único objetivo, que corresponde a un producto/aplicación. Si define varios objetivos, puede:
- incluyen algunos de los archivos de código fuente (o tal vez todos) en ambos objetivos, algunos en un objetivo y algunos en la otra
- se puede jugar con configuración de generación de compila los dos objetivos usando diferentes configuraciones.
Por ejemplo, puede definir Precompilador macros para un objetivo y otras macros para el otro (digamos OTHER_C_FLAGS = -DPREMIUM
en blanco "PremiumVersion" y OTHER_C_FLAGS = -DLITE
para definir la macro LITE
en el objetivo "LiteVersion") y luego incluya un código similar en su fuente:
-(IBAction)commonCodeToBothTargetsHere
{
...
}
-(void)doStuffOnlyAvailableForPremiumVersion
{
#if PREMIUM
// This code will only be compiled if the PREMIUM macro is defined
// namely only when you compile the "PremiumVersion" target
.... // do real stuff
#else
// This code will only be compiled if the PREMIUM macro is NOT defined
// namely when you compile the "LiteVersion" target
[[[[UIAlertView alloc] initWithTitle:@"Only for premium"
message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!"
delegate:self
cancelButtonTitle:@"Doh!"
otherButtonTitles:@"Go buy it!",nil]
autorelease] show];
#endif
}
-(void)otherCommonCodeToBothTargetsHere
{
...
}
Cuestiones relacionadas
- 1. Refactorización de código compartido en varias soluciones
- 2. Cómo crear varias aplicaciones de Android desde una base de código
- 3. Ejecutando varias aplicaciones Node (Express) en el mismo puerto
- 4. Mercurial: Cómo administrar el código común/compartido
- 5. agrupar varias aplicaciones bajo el mismo icono en el Lanzador de aplicaciones
- 6. Repite el mismo código HTML en varias páginas
- 7. Hibernate Distributed Cache: ¿pueden varias aplicaciones compartir el mismo caché?
- 8. implementar varias aplicaciones web en un mismo servidor
- 9. Crear aplicaciones de Android con Xcode?
- 10. ¿Cómo crear una vista desde un archivo nib en xcode?
- 11. Cómo mantener el mismo ID de sesión en varias aplicaciones web en ASP.NET
- 12. Fusionando y dividiendo el código compartido entre proyectos en TFS
- 13. El mismo paquete R en varias bibliotecas
- 14. Bzr: Crear un repositorio compartido desde un repositorio independiente existente
- 15. ¿Cómo mantengo el código común compartido entre proyectos en C#?
- 16. ¿Dos aplicaciones de Android en el mismo proyecto de Eclipse?
- 17. Usar el objetivo agregado para firmar y desplegar varias aplicaciones
- 18. Diseño de código compartido
- 19. Instalación de varias aplicaciones a la vez desde Inno Setup
- 20. ¿Qué piensas de uniGUI, el marco para crear aplicaciones web y aplicaciones win32 al mismo tiempo?
- 21. ¿Cómo editar el mismo archivo en varias pestañas en vim?
- 22. Kohana PHP - Múltiples aplicaciones con modelo compartido
- 23. ¿Cómo formatear el código en Xcode?
- 24. ¿Será suficiente Xcode 4.3.2 para crear aplicaciones para iOS 6?
- 25. Cómo mostrar varias imágenes en el mismo figue - Matlab
- 26. Ejemplo de varias aplicaciones (fastcgi/uwsgi/scgi/proxy_pass) Mojolicious en el mismo host virtual nginx?
- 27. one XCode Project múltiples aplicaciones de iPhone
- 28. Comentarios de varias líneas en Xcode
- 29. utilizar el mismo archivo estático en múltiples aplicaciones en Django
- 30. Agregue el mismo método a varias clases
Si está acostumbrado, piense en los objetivos como diferentes archivos make. Ellos tienen el mismo rol. – Cyrille
Esto es enorme, gracias. Para que esto funcione realmente bien para mí, necesitaba hacer un objetivo de copia y luego actualizar la configuración de destino para usar un Info.plist diferente para mi nombre de paquete ect ... – Slee
Tenga en cuenta que si agrega archivos adicionales a su proyecto, tenga cuidado para agregar el archivo a ambos objetivos y no solo al activo: al agregar el archivo, en el cuadro de diálogo que aparece para preguntar si desea copiar archivos o no, tiene una lista de sus objetivos y casillas de verificación frente a cada uno . (El estado de las casillas de verificación está guardado, por lo que probablemente deba verificarlo solo una vez) – AliSoftware