使用场景或者前提:
随着苹果系统更新,Itunes也跟着更新(关闭了ipa的下载和商店入口),iOS开发者想抓取苹果商店的一些ipa资源分析也好,学习也好,手段越来越难,(此处不讨论window上安装可以下载ipa的最后一个版本的itunes)也越来越麻烦,甚至感觉没有方法,通过网上学习加上自己的分析,现提供2种下载ipa的方法
下载前分析
下载ipa,根据苹果一贯的严格的立场,既然是服务器资源,而且应该是以GET请求作为类型的资源(个人猜测分析,不抬杠),由此我们大概梳理出来可以拿到ipa包的最大前提,先拿到ipa资源地址是最主要的
以是否需要抓包,将依赖AppleConfig2工具的ipa下载分为2个方法介绍
方法1: 通过AppleConfig2 配合抓包获取
ps:AppleConfig2是苹果官方的软件,可以在苹果商店搜索apple-configurator 下载
因为做mdm功能,发现AppleConfig2 安装ipa的步骤的第一步,就是下载ipa资源(记得先登录自己的apple id 账号),然后就感觉有了可以抓包的机会, 这个时候,我们在选择及安装ipa的时候,可以提前开启抓包工具(比如charles或者wiresShake),然后我们选择抓取的包中,以itunes,apple.com为域名的接口(此处发现一个很不靠谱的问题,苹果的这个资源使用的是http请求,是不是因为是资源,没有使用https呢,感觉很疑惑,大牛们可以给点个人见解),可以拦截到如下接口:
copy这个链接,即可直接访问到苹果服务器的ipa包,通过我们分析拦截的接口的返回,其实苹果服务器并没有直接返回ipa资源,而是将访问地址重定向到了资源(302状态码),结果如下:
这样即可下载到我们需要的ipa(此ipa包含了我们登录的apple id信息,如果设备不是使用的相同账号的设备,启动的时候需要验证apple id)
方法2: 通过AppleConfig2直接下载到本地查找
在上面的方法1中,我们选择直接安装ipa.然后下载完之后,我们可以到mac的如下目录去查找
// 如果第一次下载ipa,是不会有TemporaryItems及以下子目录的 下载完就会有
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
重点:苹果也考虑到了我们可能会这样使用ipa,或者是为了清理本地磁盘,减少磁盘压力,亦或者是为了保证用户每次都去下载ipa以保证ipa可以是最新的,软件会下载完ipa,传输到设备上后(或者是读取完后)立刻本地路径清空,这个实现和iOS通过plist分发ipa,mac分发ipa的逻辑如出一辙,但是同学们的智慧是很强大的,有同学发现,如果安装过一次app,第二次再去安装的时候,会弹出如下的一个提示框,
在这个短暂的没有用户响应的瞬间,程序还不会删除ipa,这样我们直接上上面的路径去找到ipa文件即可,
谢谢