一、应用场景
苹果的iOS应用存在如下问题造成无法利用资源加速直接预取:
· URL不固定,维护人员无法直接获取
相同版本应用, Ipa文件不同机型或ios版本, url中的path部分会不一样(没有明显规律), 文件名一样, 但文件大小也不一样
url:http://www.ruijie.com/apple-assets-us-std-000001/Purple128/v4/f9/e7/c0/f9e7c0e3-0524-c010-8a58-cd615bd04bbc/pre-thinned5385312154627031534.thinned.signed.dpkg.ipa
path: apple-assets-us-std-000001/Purple128/v4/f9/e7/c0/f9e7c0e3-0524-c010-8a58-cd615bd04bbc/
name: pre-thinned5385312154627031534.thinned.signed.dpkg.ipa
· 苹果手机对报文应答头部有做校验,无法伪造服务器来提供文件
Appstore安装时, 对文件应答的头部内容有校验判断, 头部内容较多, 伪造困难, 如果应答报文头部校验失败, 则appstore下载成功, 但安装时提示失败
· 下载前需要登陆验证,因此就算获取到URL,仍然无法直接下载
Ipa文件保存在apple服输器上, 需要先登陆(apple id)后, 获得session cookie等信息才能下载, 因此通过EG直接从服务器上下载也不可行
基于以上原因,IOS更新依赖被动缓存,这样带来的体验较差, ipa文件无法通过直接获得文件的方式进行资源加速.多数情况下,应用缓存(被动缓存)已经足够满足需求,应用缓存主要不足是首次下载应用的用户无法获得缓存加速效果。而有了主动缓存方案后,IOS被动缓存做成由总部被动缓存一次后,各分支主动去总部同步内容,可以带来更好的体验效果。部分客户希望首次下载也能够有加速效果,此时可以推荐此方案。
二、功能原理简介
· 总部EG: 开启app缓存功能, 利用手机模拟操作appstore下载, 缓存ipa文件
· 网点EG: 开启资源加速功能, 资源指向appc-cache-hot.html
要实现加速需满足以下条件:
1、分支与待加速的总部EG通信链路要能通信,并且在总部设备上开启app缓存功能。
2、到总部的流有经过分支设备。
3、EG会话根据资源列表,把总部EG的资源下载到EG本地,当内网有用户下载资源列表的资源时,EG会本地提供,所以提升了下载速度和节省了出口带宽;
说明:
其中appc-cache-hot.html: 为总部eg上的文件, 根据app缓存数据库中已有文件来生成
而app缓存数据库中已有文件: 这个仍需要ios手机去触发下载并生成缓存
· 为什么需要总部?
做总部的设备对带宽和设备性能均有一定要求。因此需要中高端的设备,并且需要客户提供上行带宽较大的线路,才能满足文件下载需求。
· 适用什么类型客户?
主要是连锁门店类企业,并且应用会频繁更新。