APP生產和開發環境的分離

一般情況下,在使用第三方服務時,都會提供兩個環境方便開發,即:生產環境和開發環境,我們提供兩套 App Key / Secret,兩套環境的功能完全一致。
在開發中,對產品進行迭代升級時,有時會遇到這種情況,手機中已經裝了一個已經上線的產品,但是開發時還要在裝一個正在開發中的產品,這時就只能卸載一個,才能安裝另一個,比較麻煩,而且開發版本和發佈版本 的一些配置是不一樣的,比如接口地址、第三方的app key 等,這些內容如果直接在代碼裏 改來改去比較麻煩,而且還容易出錯。

所以在這裏,就和大家分享一下怎樣進行生產環境和開發環境的分離。

Tips:
release 英[rɪˈli:s] 美[rɪ’li:s]
vt. 釋放; 發佈; 發行; 放開;
n. 釋放,排放,解除; 釋放令; 公映的新影片,發佈的新聞[消息];

1、首先在Project Structure中 在Build Tyoes中 默認就有debug和release兩個版本,而我們只需要在debug版本中的Application Id Suffix 中輸入.debug(叫什麼都行,注意和下面的步驟保持一致),release版本不動
這裏寫圖片描述

2、在src目錄下新建debug目錄,目錄名要和Application Id Suffix一致,然後在debug目錄下新建res目錄,在res目錄下建立圖片和values文件夾,如圖:
這裏寫圖片描述

這裏目錄不要弄錯了,當我們在運行時選擇debug版本時,這裏的圖片和strings裏的內容會自動替換main目錄下的相應的資源文件,
strings裏放一些debug和release版本不同的配置信息:如:
這裏寫圖片描述

這裏以app名稱,接口根地址和本地緩存文件路徑做演示,
我們在Application中的onCreate中根據運行時選擇的是debug還是release進行取出不同的值。
這裏寫圖片描述

3、運行時在BuildVariants種選擇是運行debug和是release版本
這裏寫圖片描述
這時要注意的是: 在運行release版本時,如果你沒有配置簽名文件信息時,會報:
Error
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
Open Project Structure Dialog

1)、這時,我們首先要在project Structure的Signing中添加簽名文件信息,如圖:
這裏寫圖片描述
2)、然後在Flavors中將Signing Config選擇爲剛纔配置的簽名文件信息
這裏寫圖片描述
到這一步基本算是完成了生產和開發的環境分離,就可以在手機中同時安裝生產和開發兩個版本的應用了,不用在每次都要卸載安裝了。
需要注意的是:在android5.0以上的系統中,對權限的管理進行了加強,所以debug和release的簽名文件要一致才能安裝成功,要不然就會報install_failed_duplicate_permission 權限錯誤。
所以我們在BuildTypes中將debug和release的Signing Config選項都選擇同一個簽名文件,在同時安裝relase和debug就不會報錯了

還有就是當我們進行環境分離後,一些第三方的測試版本的key值需要根據新的分離後的包名進行重新生成,比如jpush,百度地圖. 而分離後的實際包名就是之前的包名最後加上 你配置的Application Id Suffix 就是測試版本的包名.
如jpush的集成在manifest中有許多和包名相關的配置,這裏我們只要將包名全部替換爲${applicationId} 就行

參考文檔:
http://www.tuicool.com/articles/yAZBjeA

轉載於:
http://m.blog.csdn.net/article/details?id=51056595

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章