从Eclipse中的相​​同代码库构建多个版本

问题描述:

对于来自iOS/xCode背景的Java和Eclipse,我很新。我有一个iOS项目,有2个版本,1个使用测试服务器,1个使用活动服务器。在xCode中,这仅仅是添加新构建目标(预处理器宏)的情况,而不是在代码中使用#ifdef为每个构建使用单独的url。 移植这种过度到Android,我的东西,这个名单我需要我要建立的2个版本从Eclipse中的相​​同代码库构建多个版本

TO SWITCH BETWEEN LIVE AND TEST 
Rename Application Package com.mybus.myapp/com.mybus.myapptestserver (Right click, Android Tools, Rename Application Package). 
Rename com.mybus.myapp folder to com.mybus.myapptestserver. 
Change Map API key in manifest 
Change SENDER_ID in BeginActivity.java (Notification app ID). 
Search and change all references com.mybus.myapp/com.mybus.myapptestserver (Including SharedPreferences). 
Change URL's in ConnectionHelper.java and PasswordResetConnection.java 
Change icon and label in Manifest for Application & BeginActivity. 
Remove crash reporter (ACRA) from MyApplication.java. 
Change .setSmallIcon(R.drawable.ic_test_launcher) & .setContentTitle("myapptestserver") in GCMIntentService.java 

肯定有是建立单独的一个简单的方法之间架起/测试,让每一次做这两个动作在同一设备上?

+0

只是一个笔记给其他人阅读此。刚刚宣布由Google公布的新Android Studio说:“新的项目结构是由于切换到基于Gradle的构建系统。这种结构为构建过程提供了更多的灵活性,并允许多种构建变体(一种功能尚未完全实现)。“这将有望使事情在未来变得更容易:-) – Darren 2013-05-17 09:12:06

你可以使用Ant脚本来做到这一点。一旦您自定义您的Ant脚本以处理所有这些更改,您可以通过运行ant release命令来获得最终输出。

一个可以从哪里开始的小例子。我写了一篇关于它的文章。这个ant脚本不会改变文件中的任何值,但它所做的是输出最终的apk文件,并将其输入到指定的文件夹中。

http://techdroid.kbeanie.com/2011/09/automating-builds-on-android-part-1.html

http://techdroid.kbeanie.com/2011/09/automating-builds-on-android-part-2.html

免责声明:这是链接到我的博客文章。

+0

谢谢,我刚刚阅读它可能是一个起点,它并没有真正解决我目前为每个构建所做的任何更改。我可能在我的应用程序类中使用了一个'DEBUG' var,但其中的一个似乎是更改应用程序包名称(我认为它应该自动更改文件夹名称,但它不会)。 – Darren 2013-05-09 08:52:08

+0

通过Ant脚本,您可以重命名/复制/移动文件夹,扫描文件,并将您的软件包名称替换为任何您想要的。扫描Java文件并替换变量值。你只需要写一次这些脚本。 – 2013-05-09 09:12:15