(iOS)仿App第一步:获取App素材

前记

写文前总要说明目的或者吐槽些什么的。
入门iOS也快一年了,到现在还没一个自己独立完成的App,说起来也是惭愧。移动应用,说实在话,我也还在摸索中,实在没什么比较好的idea,但自己又想找一些事干,那么就仿呗。要仿一个App也不是那么简单,撇开移动端的技术,其他需要完成的就有产品、设计、测试、后端接口、服务器,这还不扯到运营、内容、市场。找了一阵子的App后,决定做一个记账方面的App。刚开始是秉持锻炼技术的目的,后来用Charles抓了一下包,发现我每记的一笔账都会被Post到对方的服务器而且还发送到pingma.qq.com做统计,顿时有内裤被人扒了的感觉。恐怕这就是业内的作风吧,冯管数据有用没用,先存起来再说,说不定又可大肆鼓吹大数据处理进入下一个风口继续骗钱过日子。

本文的面向读者

已入门iOS,且用Mac进行开发。
如果你没接触过Mac,那恐怕以下内容都不用看了。

正文

接下来就是怎么获取App素材的步骤了。
1、打开iTunes(mac自带应用),按照下图,先找到App Store,然后搜索框输入想要找的App,比如我输入的是约约(自家产品、避免纠纷),搜索出来后点击获取就可以了,期间可能需要你输入账号密码,填一下就可以了,反正免费。

iTunes.png

2、点击我的应用,找到刚才下载的应用约约,右键点击后选择“在Finder”中显示

我的应用.png

3、如下图所示,我们得到的是一个ipa的安装包,不要直接双击打开,右键点击后选择打开方式:归档实用工具,然后就可以获得一个同名的文件夹,在Payload中找到一个包,右键点击后选择显示包内容。

显示包内容.png

4、到这一步,就算ok了。所有资源都在这个包里面,这里就有App所有的本地素材,当然有一些素材是通过网络加载的(通常是一些需要经常换的素材)。

图片资源.png

5、不过我们可能还会遇到找不到素材的情况,这时候就要留意显示的包中有没有Assets.car文件。当开发者使用Image Assets管理图片资源后,我们下载App解包后无法看到原始的图片,所有的图片都被存储在Assets.car文件中。

images.xcassets.png

那么这时怎么办呢?在stackOverflow上找了一下,有个家伙提供了这么一个方法,用的是开源的cartool工具,专门用于提取.car文件中的资源。

打开终端:输入git clone https://github.com/steventroughtonsmith/cartool
用Xcode打开下载下来的工程,编译后自动生成可执行文件(在工程目录下的product文件夹中),然后找到可执行文件(右键点击后选择show in finder),将cartool拖进控制台(感谢@neobuger提醒),按照下面的命令执行即可。

cartool.png

命令格式: ./cartool “待解压的文件路径” “解压后的文件路径”
示例:

$ ./cartool /Users/admin/Documents/Assets.car /Users/admin/Documents/

这么一来就可以获取Assets.car中的所有素材了。

首先声明这种做法在一定程度上是侵权的。毕竟每个公司的产品都是每个team的心血,我们极易拿到的素材有可能是设计部门加班加点后的产出,所以我呼吁大家仅作为学习用,切勿用于商业用途。

推荐阅读更多精彩内容