2011-11-02 16 views
9

Tengo mi aplicación con ID com.mydomain.AppName que es pagado versión.Dos versiones de la aplicación para iOS, gratuita y de pago, ¿cómo cambiar condicionalmente la identificación del proyecto en XCode?

Decidí introducir versión gratuita también, y a través de mi código puedo agregar fácilmente anuncios/eliminar algunas funcionalidades con negocios simples # defined/# ifdef.

Sin embargo, sí necesito que mi ID de aplicación sea diferente para la versión gratuita. ¿Cómo hago esto de forma condicional (es decir, #ifdef FREE_VERSION ... etc.) para mi aplicación?

+0

simplemente copie la versión actual que tiene a otro proyecto, actualícela para convertirla en la versión gratuita y asígnele su propia ID de aplicación – denil

+1

Solo para usuarios nuevos, los objetivos múltiples son la mejor manera en este caso. Puede asignar activos a diferentes objetivos mientras comparte los activos y códigos existentes entre los objetivos. Incluso puede usar macro de precompilador para tomar una decisión sobre qué objetivo está usando su código. – Maziyar

Respuesta

0

Puede lograr esto teniendo diferentes proyectos de XCode, uno para cada tipo de aplicación que confíe en un código común (también conocido como proyecto XCode de biblioteca). Un proyecto de XCode sería para aplicaciones de pago, y tendría diferentes macros, funciones de configuración. El otro proyecto de XCode sería para la aplicación gratuita. Ambos proyectos de las aplicaciones pueden incluir fuentes compartidas - que sería recopilado en base a las macros (PAGADAS o GRATIS), etc.

15

Esta pregunta fue respondida en un previous post

La idea básica es que se crea dos objetivos y luego use #ifdefs o cree archivos separados para controlar el contenido en los dos objetivos. Crear otro objetivo es completamente simple. Simplemente haga clic derecho en su objetivo existente y duplíquelo. Dale el nombre que quieras para la aplicación gratuita.

En su caso, es probable que desee tener diferentes iconos para el juego Gratis y Pagado, así que cree dos carpetas de icono, una llamada Iconos Gratis y la otra llamada Iconos Pagados. Póngalos en la carpeta del proyecto y al importarlos, conéctelos a uno de los objetivos.

He duplicado los archivos originales Info.plist y Prefix.pch y les he dado diferentes nombres, pero puede usar los mismos nombres, simplemente colóquelos en carpetas diferentes. Tendrá que ajustar la configuración de compilación para cada objetivo para reflejar los nuevos nombres.

Es posible que también tenga menos contenido en la aplicación gratuita. Simplemente seleccione los sonidos y las imágenes que están solo en la aplicación de pago y en el inspector marque la Membresía de destino como solo la aplicación de pago.

También necesitará editar sus esquemas para que pueda construir dos versiones. Acabo de terminar de hacer esto para un proyecto en el que estoy trabajando y me llevó unas dos horas de principio a fin encontrar todo lo que necesitaba cambiar. Supongo que podría agregar otra versión en unos 15 minutos ahora que sé lo que estoy haciendo.

Esta forma de hacer las cosas es mucho mejor que duplicar el código o intercambiar el contenido en una base de código porque puede cambiar fácilmente entre objetivos para asegurarse de que todo funciona cuando realiza cambios.

+1

Si no te importa tener el mismo ícono de forma gratuita y de pago, puedes simplemente cambiar el ID de tu paquete a la ID del paquete pro y luego el nombre del producto y recompilarlo. Luego, en su código, verifique el ID del paquete para determinar si es pagado o gratis. – jjxtra

Cuestiones relacionadas