我刚刚发布了我的第一个应用程序,并希望有一个免费版本。我想知道我应该如何管理我的免费版本分支(在svn中),这样很容易合并完整版本的更改?是否可以在Manifest文件中更改包名?或者包名在代码中必须有所不同?如果是这样,我怎么能轻松地合并更改?如何管理免费版本?
感谢,杰森
我刚刚发布了我的第一个应用程序,并希望有一个免费版本。我想知道我应该如何管理我的免费版本分支(在svn中),这样很容易合并完整版本的更改?是否可以在Manifest文件中更改包名?或者包名在代码中必须有所不同?如果是这样,我怎么能轻松地合并更改?如何管理免费版本?
感谢,杰森
的Android Library Project这里是你的朋友。
你真的想保持一个不同的分支创建一个免费的版本?
我会使用相同的代码库和在免费版禁用某些特征,无论是由#ifdef
或配置参数。
我在所有的应用程序使用此:
public static final boolean LITE_VERSION = true;
然后用它来禁用某些功能。
重要的是要知道,如果LITE_VERSION设置为true,java编译器将忽略if(!LITE_VERSION)块中的任何代码段,所以它不能被反向设计(可以使用“javap -c“命令)。
很感谢,但这仍然给我带来软件包名称问题,你对此做了什么? – Jason 2010-12-07 18:49:08
我使用Ant构建的。我以前记录了how I build two versions of the same app。我讨论如何处理不同体现的最后一部分可能是你最感兴趣的部分。
我尝试使用相同的代码库和包名,并提供溢价键,这可能是一个额外的应用程序(APK),或只是一个序列号。这种方法具有积极的副作用,即想要升级的用户可以使用其旧数据和设置。关键只是使得像提一个标志,它使功能前动态
但我不能在市场上发布同样的包名APK两次反正能吗? – Jason 2010-12-07 18:31:54
@Jason,我不知道android开发,但是你不能只保存一个单独的包名称被定义的文件副本吗? – 2010-12-07 18:43:03
如果只是在清单中,那么是的,但如果我需要更改代码包,那么这可能是一个问题,我被建议做一个假包,只是将清单文件更改为可能工作的假包会让你知道它是否 – Jason 2010-12-07 18:47:54