APP生產和開發環境的分離(手把手教你)


在開發中,對產品進行迭代升級時,有時會遇到這種情況,手機中已經裝了一個已經上線的產品,但是開發時還要在裝一個正在開發中的產品,這時就只能卸載一個,才能安裝另一個,比較麻煩,而且開發版本和發布版本 的一些配置是不一樣的,比如接口地址、第三方的app key 等,這些內容如果直接在代碼里 改來改去比較麻煩,而且還容易出錯。

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

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



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com