Bugly Tinker熱修復 後臺顯示補丁下發成功 並且已激活,但是沒有生效的問題解決方案

場景:
對於加固包通過tinker進行熱更新,補丁顯示下發生成,並且已經激活,但是補丁實際上沒有生效。

問題:
是什麼原因導致的補丁不能生效?

解決方案:
通過各種原因的排查,最終鎖定在混淆問題上。因爲混淆規則不正確,或者沒有添加tinker的混淆規則。導致代碼混淆後出現異常找不到文件。混淆規則配置如下規則

-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
# tinker混淆規則
-dontwarn com.tencent.tinker.**
-keep class com.tencent.tinker.** { *; }
-keep class android.support.**{*;}

如果是補丁下發成功,但是一直顯示沒有激活,那就是簽名有問題,要確保基準包和補丁包簽名一致。在buildTypes裏面配置簽名,可以確保簽名的一致性。

  buildTypes {
        debug {
            buildConfigField "boolean", "IS_DEBUG", "true"
            minifyEnabled false
            signingConfig signingConfigs.debug
        }
        release {
            buildConfigField "boolean", "IS_DEBUG", "false"
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章