线上app是如何自动更新的

我看见有很多app 会自动更新, 这是怎么做到的?
假如说现在我有新版本的app要更新, 怎么做让用户来更新?

阅读 13.9k
3 个回答

1)先说说让用户来更新:

主要分两步:第一个是怎么知道有新版本,第二个是知道新版本怎么升级。

怎么知道新版本:打开app后,在欢迎界面渲染完毕后,发一个http请求到服务器,检查是否需要更新,如果有更新,且不是强制更新,弹出提示,用户点击更新就更新,点击暂不更新就不更新,友好一点还可以点一下忽略此版本;如果是强制更新的话,用户点击更新按钮就更新,点击暂不更新就退出APP

当然ios的还可以直接请求app store的api检查是否有更新,这样更可靠,原理还是一样的

知道有新版本后怎么升级:android和ios app的升级方式不一样,android的可以让用户下载apk安装,ios的只能跳到itunes,偷懒一些,可以借助一些第三方应用市场,比如腾讯的应用宝,用户点击后,直接跳到腾讯的应用宝就行了,应用宝会根据用户的操作系统去让他下载apk或者跳转到itunes商店。

======割割割======

2)再谈谈自动更新,我理解的自动更新就是不需要用户操作,直接更新,一般情况下,APP的自动更新需要下载一个新版本,然后安装,对此android app更灵活一点,甚至可以老app自动下载新app,然后触发安装,这样做到完全自动更新(不需要用户点击更新),ios就没办法了,必须到itunes更新。

但是,聪明的开发人员还是能解决这个问题的,基本原理就是通过js调用本地接口,APP有更新时,只需要从服务器load最新的js文件即可。这在一定程度上能解决不需要用户跳itunes就完成自动升级的情况,当然前提是最好你的APP是hybrid的。具体的例子有JPatch库。

可以参考这篇文章:http://segmentfault.com/a/1190000003973865

更新iOS app一般有几种途径:

  1. 在App内部根据bundle version判断,提示用户更新,实际还是从App store 更新。

  2. 一般针对测试用户的,使用 OTA(over the air)技术,提供一个链接,让用户从这下载。

  3. 利用JSPatch等,这种JS技术,实现实时更新,一般情况下都是在Hybrid app中采用

Android 热补丁 AndFix
AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就是 “Android Hot-Fix”的缩写。 
就目前来说,AndFix支持Android 2.3到6.0版本,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime。 
AndFix 的补丁文件是以 .apatch 结尾的文件。 
AndFix是阿里巴巴开源项目。

Github:https://github.com/alibaba/AndFix

推荐问题
宣传栏