多渠道打包
最近項目用到多渠道打包,雖然網(wǎng)上又很多資料, 但是我在實際使用的過程中還是遇到了些問題, 在這里記錄下,希望能幫助到你!
首先配置你的渠道信息 :
這個時候渠道使用的簽名配置都是和主工程一致的, 如果需要修改, 只需要配置Signing Config就可以了.
開始以為只要這樣就行了, 但實際編譯的時候, 拋出了 All flavors must now belong to a named flavor dimension 的錯誤, 這是由于各渠道需要對版本號進行統(tǒng)一
同步Gradle后, 會生成各渠道的配置信息, 這里列舉百度的:
productFlavors {
app_baidu {
applicationId = "你的appid"
manifestPlaceholders = [
CHANNEL_VALUE: "app_baidu", // 對應的渠道名稱
JPUSH_PKGNAME: "", // 你的appid
JPUSH_APPKEY : "", //JPush上注冊的包名對應的appkey.
JPUSH_CHANNEL: "", //暫時填寫默認值即可.
]
}
}
如果你的項目中還用到了友盟統(tǒng)計和極光推送, 那么你要去配置不同的CHANNEL_VALUE, 以確保對不同渠道的統(tǒng)計:
在Manifest的application節(jié)點下, 添加
<meta-data
android:name="UMENG_CHANNEL"
android:value="${CHANNEL_VALUE}" />
然后在不同的渠道里對這個值進行修改
極光推送的配置也是類型, 將所有用到包名的地方替換為${applicationId} 然后就可以對不同渠道進行打包了!
馬甲包
馬甲包的情況和多渠道其實很相似, 只需要在配置渠道的地方修改不同的applicationId, 就可以生成一個馬甲包了,可以和主包安裝在一個手機上了, 但是往往實際情況沒有這么簡單, 我在這中間就碰到了一些問題
-
首先是馬甲包要引用不同的資源 , 這里就需要創(chuàng)建不同的資源目錄
然后就可以對資源進行修改, 達到對不同資源的引用
- 第三方庫的兼容問題
我在項目中用到了知乎的開源圖片選擇器(吐槽一下,個人感覺不是很好用, 還有bug) , 里面對存儲空間的provider進行配置
其實就是Context.getPackageName()
以上就是關于Android多渠道打包和馬甲包的操作中我遇到的問題, 如果對你有所幫助, 還請點贊,謝謝你!