iOS 深度获取.ipa图片资源文件

作者: Fengur | 来源:发表于2016-12-30 15:15 被阅读1545次

作为一个移动端开发人员,经常要扒一扒其他项目的图片资源,可以用来直接使用或者做预开发时的占位图,也可以通过分析一个ipa中的图片资源来推导某一个功能的实现原理,简而言之,扒图也是开发人员应该具有的一个技能。考虑到年纪到了,忘东西越来越快,明年后年可能忘得更快,记一帖当做笔记。

1.获取目标ipa

比如你要看一下QQ里都用到了哪些图片,首先要做得就是弄一个QQ的ipa,获取ipa方式多种多样,如iTunes获取、iTools获取等等,这里选用iTunes来获取QQ6.6.2.ipa

0F49305C-B184-4C81-906A-0353475B8D50.png
搜索你想要查找的项目名称,然后点击获取,下载完成就能在资料库里看到了。 FDDDCDF3-C6CC-4484-8ED4-69FF84A12C7F.png
2.拆解目标ipa

QQ6.6.2.ipa拓展名改为.zip后解压

DD30A4FC-A9F2-420A-97AD-AC13EDBD5A65.png
此处插播一条题外消息,在包内容中也可以看到该工程的plist文件,感兴趣的同学也可以在这用拿到配置文件原型来啃一啃。 图片.png
接下来将刚才查看包内容后的文件夹单独拷贝出来,用一个单独文件夹接收,这是为了避免每次查看都要经过显示包内容操作。 图片.png
ipa的资源已经拆解完毕,可以简单预览一下。 图片.png 图片.png 图片.png 图片.png 图片.png 图片.png 图片.png

还有其他如nib文件、使用SDK相关信息、工程热更新代码配置等等都可以从这个包的内容里看到蛛丝马迹甚至部分源码。

3.获得Images.xcassets中的图片

因为QQ的主题和自定义装扮配置较多,本地资源图片几乎全部暴露在bundle路径,所以经过上面几步的拆解,大部分图片资源都已经可以获得,但是现在很多本地资源的图片我们都放在了Image.xcassets

图片.png

这个文件夹里的图片,在打包成ipa的时候Xcode会单独给它设置路径,形成一个新的文件显示在包内容中,这里以斗鱼的ipa来做示例。

图片.png 图片.png
到了这一步,最关键的Assets.car文件已经浮出水面了。
4.利用cartool来解析Assets.car
  • clone 或者 download cartool
  • 按照自己对于source资源的需求修改cartool內代码
图片.png

此处仅演示获取资源,所以将这部分代码修改如下:

NSString *idiomSuffixForCoreThemeIdiom(kCoreThemeIdiom idiom)
{
    return @"";
}
  • 将上一步获得的Assets.car拷贝到一个方便找到的位置,并新建一个文件夹来接收Assets.car中的图片。
图片.png
  • 给cartool修改Scheme
图片.png

将上一部准备好的Assets.car和接收文件拖入到如下位置

图片.png
MARK:此处的顺序是固定的,不要弄反。
  • Run **cartool **
    此时log中有一大堆资源的名字陆续出来,这就代表本次解析图片已经成功。


    图片.png

    此时去查看接收文件的文件夹。

图片.png
所有Accests.car中的图片已经拿到。 图片.png

这波ipa图片资源文件获取步骤已经差不多讲完,看起来很繁琐,其实很简单,就是一个熟练度的事情,忘记了的时候随时来瞅一眼就好,这也是笔记最合理的存在原因了,谢谢观众老爷的赏光。

相关文章

网友评论

  • 风茗夜雨:最新itunes不能ipa包了
    Fengur:@fly20161115 PP助手
    0cd6c78ba2d4:@怡红公子潇湘馆 请问现在有什么方法可以获取到ipa
  • 不是谢志伟:不错, 可以拿到图片了。
    另外如果路径有空格的就要注意了, 空格要用反斜杠转义一下。
  • JACK_岩:看起来很明白,不知道做起来怎么样了
    Fengur:@只道寻常_岩 很简单,好用
  • footSInRoad:成功了 谢谢分享
    Fengur:@不以物喜_不以己悲 不用谢,:smile:
  • dane1125:改了代码,然后run cartool没反应,文件夹里也没有图片,这是什么原因?谢谢
    Fengur:@dane1125 怕是你不小心搞错了哦,兄弟,仔细对一下,😁
  • 9664d7862551:有办法获取APP 的接口吗?
    9664d7862551:@Fengur 嗯,谢谢
    Fengur:@9664d7862551 这个抓包吧,一般不加密的还是一目了然的
  • 啊啊啊啊锋:正好用到 感谢
  • 君赏:如果是pdf类型图片貌似抓不出来吧
    Fengur:@君赏技术博客 理论上是抓不出来的
  • 繁星纵变:看完了:sunglasses:
    繁星纵变:@Fengur 哪里忘记你了,都点赞了……
    Fengur:@繁星纵变 吃水勿忘挖井人
  • soulDxl:很强势。
    Fengur:@soul1993 你看到我的小熊了么

本文标题:iOS 深度获取.ipa图片资源文件

本文链接:https://www.haomeiwen.com/subject/mflmvttx.html