¿Cómo publicas dos versiones de una aplicación en el mercado?

Me gustaría agregar dos versiones de mi aplicación a Android Market, una por unos centavos y una versión gratuita, con anuncios. Esa es una práctica muy común.

Actualmente estoy comstackndo AdMod en mi aplicación, y parece que tendré que cambiar bastantes files, por lo que parece mejor hacer una versión separada de mi aplicación para esto.

¿Cómo logras eso? ¿Una twig? ¿Un repository diferente? ¿Alguien ha encontrado una forma de mantener ambas aplicaciones en el mismo repository de manera razonable?

El título no está mal escrito, quiero decir "darse count", es decir, cómo las personas administran las dos versiones, no cómo las agregan al mercado.

Este tipo de cosas es una pesadilla completa. Desafortunadamente, el sistema de compilation de Android en realidad no lo admite de ninguna manera.

Lo hacemos teniendo el 99% del código de nuestra aplicación en un proyecto de biblioteca. Luego creamos un proyecto de aplicación para cada versión diferente de la aplicación, cada una de las cuales usa esa biblioteca.

Donde necesitamos diferentes versiones de la aplicación para comportarnos de manera diferente, actualmente lo logramos teniendo diferentes resources que se consultan en time de ejecución. Sin embargo, estamos en el process de pasar a usar Dependency Injection a través de RoboGuice.

Hay elementos de esto que funcionan razonablemente bien, y otros que no. Es necesario, por ejemplo, duplicar el file AndroidManifest.xml, que puede ser propenso a errores (es fácil, por ejemplo, agregar una actividad nueva a un manifiesto y olvidarse de hacerlo en los demás). Es un desastre, desafortunadamente, pero la solución less mala que hemos encontrado.

Personalmente, recomendaría encarecidamente no usar twigs para lograr este efecto. Al principio pueden funcionar bien, pero se convertirán rápidamente en una pesadilla de mantenimiento.

Una de las ventajas de usar una biblioteca es que descubrimos que hace que las testings sean considerablemente más fáciles. Para ver un ejemplo de cómo configurar esto, consulte:

http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/

La gente generalmente los sube dos veces (como dos progtwigs diferentes) y simplemente modifica el título para agregar algo como Ad-Free, Donate y cosas por el estilo. Y en la versión gratuita, simplemente agregue la label gratuita y también coloque la descripción de que está Ad-Supported.

Aquí hay un ejemplo con la aplicación SMS emergente:

Versiones emergentes SMS de lado a lado

Para Android Market, se consideran diferentes progtwigs, pero para nosotros es lo mismo, pero uno tiene Ad-Supported y el otro no.