定义3个版本v1,v2,v3
当前版本v1,后台最新版本为v2,v1->v2 需要patch1-2
当前版本v1,后台最新版本为v3,v1->v3 需要patch1-3
当前版本v2,后台最新版本为v3,v2->v3 需要patch2-3
v1有两种情况,如果放在移动端打补丁是不可行的(因为每次只能打一个,必定不满足其中一种情况)
放在后台,后台根据移动端获得版本号v-current和后台最新版本v-new做差分,通过bsdiff生成差量包patch上传至云,返回下载路径给移动端。
移动端通过bspatch合并v-current+patch->v-new,对比v-current和v-new的MD5签名是否一致,一致便更新至v-new,否则Toast
如果合并失败,还通过原来的方式全量更新。
只是提供一个思路,至于怎么差分、合并,网上很多教程,可以自行学习。