海尔创客汇笔记----安卓测试环境检测不到热更

2018-11-03  本文已影响0人  小马将过河
timg.jpg

怕啥来啥

昨天晚上约定的晚上11点发布测试环境的热更,小杨同学说了:“怕啥来啥”,果然,安卓测试的app周一就扔出去了,约定好的今天晚上热更,结果发了热更移动端却检测不到。

晚上跟ios前端同事折腾了两次,但是无果而终,甲方粑粑不乐意了。

客户有意见了哈.png

今天开始解决这个问题。

解决方案过程讨论

1、发出去之前确实做过热更测试,不过现在看来,当时测是测了,但是测试的环境一直停留在debug环境。
2、如果本地代码和服务器上最新的热更包是一样的话,推送热更是不会成功的。

image.png
 // 热更-检查更新
  codePushCheckForUpdate = () => {
    CodePush.checkForUpdate().then((update) => {
      if (!update) {
        console.log('已是最新版本...');
      } else {
        console.log('有新版本-------', update);
        const packageSize = parseFloat(update.packageSize / 1024 / 1024).toFixed(2);
        console.log('packageSize', packageSize);
        this.setState({ totalSize: packageSize });
        this.showUpdateInfoAlert(update);
      }
    });
  }

安卓手机启动查看log,结果确实是匹配的


image.png

结果是一样的。


image.png

切换到当时打包的那次commit,重新发热更。


image.png

很遗憾,结论是一样的。

image.png

告诉甲方粑粑,然后用最新的代码打个包,这就睡觉了。

热更记录硬删除测试

在热更数据库强制删除热更记录

DELETE FROM codepush.deployments_historyWHERE  id=192;
DELETE FROM codepush.deployments_historyWHERE  id=193;
DELETE FROM codepush.deployments_historyWHERE  id=194;
DELETE FROM codepush.deployments_history WHERE  id=195;

DELETE FROM codepush.packages WHERE  id=192;
DELETE FROM codepush.packages WHERE  id=193;
DELETE FROM codepush.packages WHERE  id=194;
DELETE FROM codepush.packages WHERE  id=195;

DELETE FROM codepush.packages_metrics WHERE  id=192;
DELETE FROM codepush.packages_metrics WHERE  id=193;
DELETE FROM codepush.packages_metrics WHERE  id=194;
DELETE FROM codepush.packages_metrics WHERE  id=195;

DELETE FROM codepush.packages_diff WHERE  id=450;
DELETE FROM codepush.packages_diff WHERE  id=451;
DELETE FROM codepush.packages_diff WHERE  id=452;
DELETE FROM codepush.packages_diff WHERE  id=453;
DELETE FROM codepush.packages_diff WHERE  id=454;
DELETE FROM codepush.packages_diff WHERE  id=455;

DELETE FROM codepush.deployments_versions WHERE  id=43;

删除4次1.5.1的code-push后


image.png

重新发起热更


image.png

很遗憾仍然没有生效。此时本地的debug环境一个app启动后,发现居然提示更新。

问题来了,可能是热更和检查热更不在一个频道上

检查安卓热更配置,果然验证了这一猜测。

    buildTypes {
        debug {
            ext.alwaysUpdateBuildId = false // 避免 crashLytics 的alwaysUpdateBuildId每次编译都重新生成 加快编译速度
            buildConfigField "String", "CODEPUSH_KEY", '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' // Staging
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            buildConfigField "String", "CODEPUSH_KEY", '"pppppppppppppppppppppppppppppp"' //Production
        }
    }
一个解释:配置里只有debug(Staging)和release(Production)的配置,配置了不同的deployment

key,但因为打测试环境的app时,选择的是release,所以,按照这个配置,只有发在Production的上的热更,app启动时才能检查到,而现在一直在用Staging发。

修改配置

    buildTypes {
        debug {
            ext.alwaysUpdateBuildId = false // 避免 crashLytics 的alwaysUpdateBuildId每次编译都重新生成 加快编译速度
            buildConfigField "String", "CODEPUSH_KEY", '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' // Staging
        }
        beta {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            buildConfigField "String", "CODEPUSH_KEY", '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' //Staging
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            buildConfigField "String", "CODEPUSH_KEY", '"pppppppppppppppppppppppppppppp"' //Production
        }
    }

sync时报错,所有的库都找不到,错误信息如下:


image.png

参考本文提示,发现配置少了一项matchingFallbacks = ['release', 'debug'],添加到beta配置后,build成功。

beta {
    signingConfig signingConfigs.release
    minifyEnabled enableProguardInReleaseBuilds
    buildConfigField "String", "CODEPUSH_KEY", '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' //Staging
   matchingFallbacks = ['release', 'debug']
}

build后,重新打包,选择beta包,


首页菜单改成【专属应用】,发热更,而且强更。


code-push.png

app启动测试:


suceess

检查应用更新数,果然有更新(此处我截图时已经成功了两次)


image.png

success!!!

前端路漫漫,且采坑且记录~~~~

相关文档

上一篇下一篇

猜你喜欢

热点阅读