2012-07-13 5 views
18

Tengo una aplicación de iOS existente que necesito para poder crear y lanzar versiones múltiples de diferentes clientes.¿Cómo construyo varias versiones de la misma aplicación de iOS para OEM

Este interfaces de aplicaciones con el hardware que está disponible a partir de un puñado de diferentes empresas, el hardware es idéntico pero cada empresa vende el hardware con un nombre diferente

Esta es una aplicación gratuita, el objetivo no es hacer spam el AppStore con varias versiones de la misma aplicación, el objetivo es permitir que las empresas que venden hardware renombrado tengan una aplicación móvil que use la marca que usan para el hardware.

lo que tengo que ser capaz de hacer:

  • crear múltiples versiones de la misma aplicación que puede ser sometido a la Appstore, cada versión se presentarían en una cuenta de empresas de manzana diferente. Yo supongo que eso significa múltiples proyectos para que cada proyecto puede utilizar un perfil de datos específica de la empresa
  • Cada versión tiene algunas imágenes diferentes (icono, la imagen de inicio, tal vez algunos otros)
  • Cada versión tiene algunas cadenas diferentes (Nombre de empresa , Nombre del producto, tal vez algunos otros)

Con Android, simplemente creo un proyecto de biblioteca y puedo anular cadenas e imágenes con un esfuerzo trivial.

Con iOS no he encontrado una respuesta obvia.

Intenté agregar un nuevo objetivo a mi proyecto existente, pero no creo que funcione: - No puedo encontrar la manera de reemplazar imágenes más allá del icono y la pantalla de inicio - No puedo entender cómo reemplazar cadenas - ¿Sería capaz de utilizar diferentes perfiles de aprovisionamiento para las diferentes aplicaciones que se compilan con el mismo proyecto? Sé que la configuración del objetivo permite diferentes perfiles de provisión, pero ¿la configuración del proyecto no tiene su propio conjunto de perfiles de provisión?

¿Puedo empaquetar la aplicación actual en una biblioteca que otros proyectos pueden usar y reemplazar imágenes/cadenas? Entonces cada versión tendría su propio proyecto xCode pero usaría el mismo código.

Tal vez tengo que trabajar más con la idea de múltiples objetivos ...

estoy usando xCode 4.2, pero estoy dispuesto a mover a una nueva versión si es necesario

+0

Puede comprobar este blog publicar aquí hablando de cómo hacerlo todo http://khaledannajar.blogspot.com/2017/02/how-to-use-targets-to-launch-multiple.html –

+0

puede encontrar la respuesta si comienza a buscar implementación '.xcconfig' archivos para sus objetivos. – holex

Respuesta

11

Crear múltiples objetivos que utilizan diferentes archivos Info.plist. La mayor diferencia serán los diferentes identificadores de paquetes. También puede definir diferentes macros de preprocesador que controlarán la compilación condicional de varios fragmentos de código.

Alternativamente o adicionalmente, puede poner sus configuraciones de configuración (incluida la ubicación cambiante del archivo Info.plist) en archivos * .xcconfig y hacer referencia a aquellos en su proyecto, información, área de configuraciones. Luego, puedes construir una versión diferente de tu aplicación simplemente cambiando tu esquema. Poner la configuración de configuración de compilación en archivos también es una gran victoria para el control de la configuración.

Aquí hay un enlace para configurar los archivos * .xcconfig: http://itcoding.blogspot.com/2011/03/using-xcconfig-abandoning-build-panel.html. También he visto otros artículos como este, pero este te ayudará a empezar.

Buena suerte.

+0

Los objetivos múltiples con diferentes archivos info.plist es exactamente lo que necesitaba. La otra parte tenía carpetas separadas para las imágenes de cada oem, y en xCode me aseguro de que las imágenes estén configuradas para que solo se incluyan con el objetivo adecuado – snctln

3

Hice esto de manera diferente en mi última compañía, donde generamos alrededor de 8 aplicaciones de un repositorio principal de origen.

Creamos un proyecto que requería una clase externa, llámenlo Config. Esa clase vendió la información única que hace que cada aplicación sea única.

A continuación, para hacer girar una aplicación crea el proyecto de aplicaciones, incluyen la "biblioteca" común, proporcionar el archivo Config.m (config.hy es común), añadir las imágenes únicas etc.

+0

hice lo mismo con mi primer proyecto ... hoy es un dolor en el culo ... :) –

+0

necesita gestionar proyectos múltiples y mantenerlos siempre actualizados. Espero que lo hayas hecho con una herramienta de control de versiones. –

+2

@TommasoResti lo hice. Si encuentra una mejor manera de hacerlo, publíquelo aquí, como una respuesta alternativa. Es posible que tenga un proyecto con múltiples objetivos. –

Cuestiones relacionadas