Problema de combinación de Eclipse con el proyecto de Android (Java)

Estoy usando Eclipse + Subversion para el desarrollo de Android. Solía ​​crear una versión gratuita de mis aplicaciones con anuncios, y otra paga sin ellos, así que los mantuve en dos twigs separadas en subversión.

El problema que he encontrado es que, como se trata de dos aplicaciones diferentes para Google Play y otros mercados, deben tener diferentes nombres de packages. Así que tengo, por ejemplo:

com.package.game com.package.gamefree

Cuando realizo algunos cambios en la versión gratuita del juego y quiero fusionarlos con subversión en la twig pagada, me encontré en un problema porque los files fuente para el juego gratuito están por debajo de com / package / gamefree y por pago en com / package / juego

Terminé haciendo una fusión "manual", haciendo una diferencia de file fuente por file fuente, pero también tengo que verificar los files que se han agregado a otros directorys y los que se han eliminado. Una pérdida de time.

Entonces, ¿hay alguna manera de hacer que la subversión sepa que com / package / juego en una twig es el "mismo" directory que com / package / gamefree en la otra?

Muchas gracias por adelantado,

Estoy adivinando aquí, pero tal vez podrías tener la aplicación gratuita en el trunk del package com.package.gamefree .

En la sucursal podría tener la otra importando la que se desarrolló en el troncal como lib de dependencia, y envolverla con la class de com.package.game que está empaquetada en com.package.game , agregando las licencias …

De esta manera, solo tendrá que modificar el código una vez y crear 2 aplicaciones.

Después de googlear un poco en profundidad, descubrí que mis mejores oportunidades eran solo dos:

  • Usando ANT de alguna manera que automatiza el cambio entre versiones gratuitas y de pago en time de construcción.
  • Uso de un proyecto de biblioteca de Android compartido entre dos versiones.

He visto que la mayoría de las personas que usaban ANT lo hacían hace un time por la falta de otra opción, pero dado que hay proyectos de biblioteca de Android en Eclipse / ADT, esta es la forma preferida para este tipo de cosas. Incluso en los documentos de desarrollo de Android, dice:

http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

Si está creando una aplicación que existe en versiones gratuitas y de pago. Mueve la parte de la aplicación que es común a ambas versiones en un proyecto de biblioteca. Los dos proyectos dependientes, con sus diferentes nombres de package, harán reference al proyecto de la biblioteca y proporcionarán solo la diferencia entre las dos versiones de la aplicación.

Esta parece ser la mejor manera para mí también porque nunca he usado ANT y, dada la opción de la biblioteca, no hay ninguna razón para aprenderla.

Así que lo hice así: mi proyecto ahora está dividido en MyGameCore, que es el proyecto de la biblioteca con todos los files comunes para los proyectos MyGameFree y MyGamePay, que ahora solo tienen las classs mínimas necesarias para tener un nombre de package principal diferente, así que Google Play sabe que son aplicaciones diferentes, además de la carpeta de activos sin procesar que, según Google Docs, no se puede mover a la biblioteca. De todos modos, estos son files binarys que simplemente copio de una versión a otra cuando se cambian, eso no ocurre muy a menudo.

Así que de ahora en adelante, la mayoría de las veces solo necesito trabajar en el proyecto MyGameCore y los cambios realizados tienen efecto inmediato en los proyectos MyGameFree y MyGamePay sin necesidad de fusionar sucursales.

Esto me ahorrará MUCHO time y lo usaré en mis proyectos posteriores desde la primera línea de código.