如何获取 App Store 上任意一个 iOS app 的安装包

0x00 前言

经常抄(啊呸,借鉴)别人 App 设计(或功能)的同学,肯定经常要分析其他人的 App,UI 的话,我一般都是搭配 Reveal 来窥探,看看那些 App 的 UI 结构,因为可以看出一个视图的类名,如果是用了第三方库的话,就能根据这个类名,找到对应的库,就可以直接拿来用,实现几乎一样的效果。

但是如果是功能性的,没有 UI 界面的,这个时候 Reveal 就无能为力了。此时,我们就需要获取这个 App 的安装包,查看里面集成了哪些 SDK。

这时候,我们有几个办法。

  1. 通过一个已经越狱了的手机,下载安装目标 App,然后根据我之前写过的这个文章来导出已解密的 App。

  2. 如果手上没有合适的已越狱的手机,那么就祭出 Apple 官方提供的 Apple Configurator,下载地址在这里

0x01 准备工作

  1. 下载安装 Apple Configurator

  2. 将手机与 Mac 通过数据线连接,打开 Apple Configurator,会显示连接的手机
    00

  3. 双击手机进入,还需要先登录你的苹果账号
    01

  4. 点击 + 号,选择 Apps
    02

  5. 搜索你的目标 App(这里为了演示,我选择了一个安装包比较小的 ONE),然后选中目标 App 之后点击右下角的 Add
    03

  6. 等待 IPA 下载完毕,出现这个弹窗时,不要点击任何按钮(_注意,实测手机上也需要安装相同版本的目标 App,才会出现这个弹窗,否则可能会直接更新手机上的 App 到 App Store 最新版,弹窗不出现_)
    04
    05

  7. Finder 进入如下目录:
    ~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/
    可以找到刚下载的这个 App
    06

  8. 将其移动或复制到其他方便操作的目录,修改其扩展名为 .zip,然后解压,就可以看到里面的 .app 文件了,然后右键菜单选择 显示包内容,进入 App 文件,就可以查看里面的各种文件了。

0x02 过程中可能遇到的问题

我之前在 Apple Configurator 里面已经登录过苹果账号了,这次演示的时候,打开发现报错,不能显示和搜索 App 了:
07

根据提示文字,可能是登录过期了,然后就在顶部菜单栏中点击 Account,选择 Sign Out...,然后重新登录即可。
08
09

0x03 导出 Assets.car

如果是对 App 内的图片资源文件感兴趣,除了包内可以直接拿到的图片文件,还有大部分图片是在 Assets.car 文件里面的,可以使用开源的 Asset Catalog Tinkerer 来导出这些图片资源,下载地址在这里