2013-05-09 65 views
3

對於來自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

回答

0

你可以使用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