Tinker結(jié)合Walle經(jīng)驗總結(jié)

項目多渠道打包傳統(tǒng)的可以采用配置productFlavors來解決,但是有以下缺點:
  1. 低效 每個渠道包都要走一遍編譯的流程
  2. 傳統(tǒng)方式針對每個渠道熱修復(fù)的時候都要對應(yīng)打補(bǔ)丁
  3. bugly只支持5個補(bǔ)丁同時下發(fā),而我們渠道通常不止五個
選擇Walle
  1. 快,我們項目有10個分發(fā)渠道加上本身的官網(wǎng)和內(nèi)部升級,一共12個。大概不到3分鐘搞定12個包
  2. 一個補(bǔ)丁包即可,分發(fā)修復(fù)所有渠道包

具體使用可以參照

遇到的問題
  • gradlew 編譯出現(xiàn)permisson denied
    執(zhí)行 chmod +x gradlew 提高權(quán)限

  • 還有這種:Task 'XXX' not found in root project 'XXX'. 如圖


是因為之前的productFlavors相關(guān)的沒有注釋掉,導(dǎo)致沖突,代碼注釋掉即可

    productFlavors {
//        m0 {}
//        m4 {}
//        m5 {}
//        m6 {}
//        m7 {}
//        m8 {}
//        m9 {}
//        m10 {}
//        m11 {}
//        m12 {}
//        m13 {}
//        m14 {}
//    }
//
//    productFlavors.all { flavor ->
//        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
//    }
  • 友盟傳統(tǒng)是AndroidManifest.xml里配置渠道信息和名稱的
        <!--<meta-data-->
            <!--android:name="UMENG_CHANNEL"-->
            <!--android:value="${UMENG_CHANNEL_VALUE}" />-->

使用walle可是通過代碼來配置渠道信息,注釋掉清代文件友盟配置

        //渠道號
        String channel = WalleChannelReader.getChannel(mContext);
        Log.e("umeng", "渠道號是: "+channel);
        MobclickAgent.startWithConfigure(new MobclickAgent.UMAnalyticsConfig(
                mContext, mContext.getString(R.string.umeng_appkey), channel));

好了,這樣就節(jié)約了大把打包編譯傳補(bǔ)丁的時間了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容