一、应用场景  

苹果的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手机去触发下载并生成缓存

   

·    为什么需要总部?

 做总部的设备对带宽和设备性能均有一定要求。因此需要中高端的设备,并且需要客户提供上行带宽较大的线路,才能满足文件下载需求。

·    适用什么类型客户?

  主要是连锁门店类企业,并且应用会频繁更新。