如何在 ipa 中提取高清素材
大家好,我是付甫小生,好久不见!
今天跟大家分享的是,如何在 ipa 中提取素材。标题只是个幌子,你被骗了。雍正爷怎么会这个呢,如果会,估计也不敢学。
ipa 是什么鬼?
IPA 是 Apple 程序应用文件,是 iPhone Application 的缩写。你的 iPhone、iPad 中下载的 App 都是这种格式,只是不在电脑上看,还真不知道它的格式。
为什么要在 ipa 文件中提取图片?
有些时候,你找遍全网也未必能找到心仪的素材,倒是无意间打开一个 App 时才大惊——这不就是我需要的素材吗!
有一个叫做「清代皇帝服饰」的 App,甚是喜欢,不仅仅是因为我能从中学到知识,还因为这款 App 无论是设计还是选材,都下足了功夫。这是故宫博物院出品的 App,也是官家出品的 App 中,我认为最好的一个。
最近又重新下载,突然想以这种风格做一份幻灯片,但是在找素材的时候犯傻了,找不到满意的。自己画吧,水平有限,只能寄希望于 App 了。
你可以尝试联系 app 的开发者,看看是否能够得到回复,我估计这条路绝大多数人都走不通。
剩下的路只有一条了,就是想办法把 ipa 文件进行解压。
大学期间选修过 Java 课程,对编程还有一定了解,我认为 ipa 本质上是一种压缩文件。做出这种判断是因为有过类似的经历,比如在 Windows 中,将 .exe 文件改为 .rar 后解压,就可以看到更详细的内容,将 PPT 文件的后缀改为 .rar 后解压,可以迅速提取 PPT 中的图片,等等。
想到这,我决定自己动手,找遍全网,动手实践,总结出一套方法。写出来,一是自己做个总结,二是分享给需要的人,因为不是每个人都是程序员。
1. 准备工作
本教程基于 macOS 系统,Windows 上肯定也有解决的办法,但是时间有限,来不及折腾了,见谅。
工欲善其事,必先利其器好。开始之前,先把工具准备好。

iTunes,除了下载歌曲,还可以下载 App,最新版的可能已经把「应用商店」去掉了,尽量找旧版本,我用的是 10.12 自带的,没有升级。
Xcode,运行于苹果公司的Mac操作系统下,是苹果公司向开发人员提供的 集成开发环境(非开源),用于开发 Mac OS X,iOS的应用程序。这里不需要你开发程序,只是用来打开第三个工具。
cartool,这才是主角,打开 .car 文件的法宝,本号回复「cartool」即可下载。
2.下载应用程序文件
打开 iTunes,切换到「应用」,点击「App Store」进入应用商店,搜索并下载需要的应用程序。

已经下载的 App 都在「资料库」中,但是要找到这些程序的文件,还需要进一步操作。

在 App 图标上右击,在弹出的菜单中选择「在 Finder 中显示」,即可打开应用程序所在的文件夹。


3. 解压 IPA 文件
将文件「胤禛美人图 1.3.ipa」拷贝到桌面,然后修改其文件扩展名「.ipa」为「.zip」,如下图:

接下来解压,然后在 Payload 文件夹下找到一个名为 Beauty12 的文件,如下图。

这里的「Beauty12」其实是一个应用程序,其扩展名为「.app」,不同的 App 中名字不同,但肯定会放在「Payload」文件夹下,我们要找的素材就存放在里面。右击该文件,然后选择「显示包内容」,如下图:

然后,奇迹发生了,在新打开的文件夹里,列出了这个 App 用到的所有素材,而且,每个图片都会提供两个尺寸,太赞,如下图:

把前四位美人图给大家看一下,如下图,都是小尺寸的图,放在 1920 × 1080 的幻灯片中,已经很清晰了。还有 2X 尺寸的,分辨率会大一倍,应该是针对 Retina 显示屏制作的。

4. 凡事都有意外
但不是所有的 App 都能够按照上述步骤顺利找到内置的素材,比如同样是故宫博物院出品的「清代皇帝服饰」这款 App,按照同样的操作,在「Payload」文件夹下找到了一个名为「TCYG2D」的应用程序,执行「显示包内容」操作后,虽然得到了一些素材,但这些除了几个图标和背景音乐之外,没什么有价值的素材。App 中出现的素材,绝大多数都没出现在这里。

是不是找错地方了?不是,素材肯定就在这里面,应该包含在某个文件里。问了度娘之后,我找到了一个名为「Assets.car」的文件,没有在此出现的素材,都包含在这个文件里,如下图:

.car 文件也是一种压缩文件,但是这种文件并不是随便找一个解压软件就能打开的。至于其中缘由,有精力的同学可以深入研究一下,或者问一下身边的程序员朋友,我也不懂,就不误导大家了。为了方便操作,先把这个文件拷出来,放在桌面。
我在网上搜了一下,能够打开这种文件的方法有很多,有直接用软件的,但是没找到下载地址。还有一种方法,就是今天要讲的小工具——cartool。继续操作之前,请先确保你的电脑安装了 Xcode。
cartool 这个小工具中包含了一个同名文件夹和一个同名 Xcode 工程文件,就是扩展名为「.xcodeproj」的文件,今天真正的主角是它,如下图。开发者肯定在这个文件中写了好多代码,我们又不是程序员,也不用去懂,直接用就行了。

打开「cartool.xcodeproj」,单击下图中红色粗线框区域,然后在弹出的菜单中选择「Edit Scheme…」,如下图:

接着会弹出一个窗口,在这里设置一下文件的路径,如下图。第一行是 Assets.car 所在路径,第二行是输出路径,路我在桌面见了一个名为「a」的文件夹,我可不想解压出来的文件铺满整个桌面。
这里有两个需要注意的地方,一是这两行地址需要手动输入(我的是这样),红色矩形遮住的,是我的用户名,需要根据你的电脑设置进行更改;二要注意的是,路径不要太深,这里不需要「曲径通幽处」的诗境。完成后点击「Close」,如下图:

接下来点击「️运行」,进行解压,窗口右下角会有滚动信息,如下图:

解压完成后退出 Xcode,然后打开「a」文件夹,奇迹出现了,如下图:

好东西,需要你更进一步地挖掘。我感觉这两个 App 不是同一个程序员开发的,要不怎么藏的这么深。放两套龙袍大家看一下,是不是很清晰?

5. 组织素材制作幻灯片
素材到手了,赶紧着手制作幻灯片,事先没有打草稿,就由着性子开始做。以后如果有时间再仔细修改吧,这次先这样。
不啰嗦,看图。



按照惯例,这次还是提供两个版本,供大家挑选。

如果大家觉得还行,欢迎下载。
