如何获取.ipa文件图片资源或其他资源文件

by admin on 2019年9月12日

该文章属于<简书 — Anchoriter>原创,转载请注明:<简书社区 —
Anchoriter>

做APP独立开发,免不了要参考Apple
Store上优秀的作品,尤其是设计,这是程序员出身的我最头痛的事情。因此,参考其他APP的资源文件是非常有利的。最些年的时候,其实获取是非常方便的,通过iTunes就可以把APP的ipa文件下载到Mac,然后解压就可以查看。而资源文件,如图片等,也没有用car打包,一般都能直接看到。

当我们看到一款优秀的App时,我们可能对它的一些素材比较感兴趣,或者我们也想仿写一款类似app,那么怎么能获取到它的素材资源文件呢?

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

1.电脑上用itunes下载后,文件目录在\Users\用户名\iTunes\iTunes
Media\Mobile Applications。win7就是在库,音乐,iTunes\iTunes
Media\Mobile Applications实在找不到就打开itunes,进app
store,上方有一排选项,点我的应用程序,在下载的应用程序右键点用windows资源管理器显示。

要获得线上APP的ipa文件,现在有以下几种方案1.通过PP助手下载安装到手机的应用``2.通过iTools助手下载安装到手机的应用``3.通过Apple Configurator 2获取前两种方案网上的教程很多,这里只介绍第三种方案

Apple也一直在进步,之后添加了Assert,把资源进行打包。以及最大的被很多人诟病的新版iTunes,再也看不到应用这个选项了。从此,再也不能把ipa文件下载到Mac了。

 

1.获取目标ipa

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

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

2.将对应.ipa的扩展名改为zip或rar,用解压缩软件打开找到软件包文件,右键显示包内容

  • 首先 去Mac上的App Store下载Apple Configurator 2。
  • 然后把iphone连接上Mac,点击Apple Configurator 2
    菜单中->账户->登陆(用连接设备的Apple ID)

    图片 3打开登录.png

因此,现在一种方案就是曲线救国,下载Android安装包,解压参考。

下面我以ofo举例:

2.拆解目标ipa

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

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

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

图片 14登录Apple
ID.png

但要是有iOS的资源文件作为参考,那是更好的。那么首先先要获得APP的ipa文件。
现在暂时可行的方案是Apple Configurator 2。 至少目前Apple是认可的。

 

3.获得Images.xcassets中的图片

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

图片 15图片.png

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

图片 16图片.png图片 17图片.png到了这一步,最关键的Assets.car文件已经浮出水面了。

  • 备份iPhone的内容(避免数据丢失,非必选)

  • 所有设备->选中当前iPhone->添加->应用,找到您想要ipa的那个应用->添加

    图片 18添加应用.png

  • 去App Store (Mac商店)下载Apple Configurator 2。

  • 然后把iphone连接上Mac,Apple Configurator 2
    菜单-〉账户-〉登陆(用您的Apple ID)

  • 备份iPhone的内容。

  • 所有设备-〉当前iPhone-〉右键-〉添加-〉应用,找到您想要ipa的那个应用-〉添加

  • 系统会提示,改应用已经存在, 是否需要覆盖。不要点任何按钮。

  • 此时去关注~/Library/Group
    Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/目录下,会有ipa文件存在。将ipa文件copy到安全目录。

1、打开iTunes,搜索ofo关键字,选择商店下

4.利用cartool来解析Assets.car
  • clone 或者 download cartool
  • 按照自己对于source资源的需求修改cartool內代码

图片 19图片.png

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

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

图片 20图片.png

  • 给cartool修改Scheme

图片 21图片.png

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

图片 22图片.pngMARK:此处的顺序是固定的,不要弄反。

  • Run **cartool
    **此时log中有一大堆资源的名字陆续出来,这就代表本次解析图片已经成功。

    图片 23图片.png

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

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

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

图片 26添加.png图片 27下载ipa包中.png

拿到ipa文件后,解压可以看到Payload下的包,显示包内容可以看到部分APP的资源以及Assets.car。

图片 28

  • 因为你手机中已经存在了当前应用,所以会提示,该应用已经存在,
    是否需要替换?此时,不要点任何按钮!不要点任何按钮!不要点任何按钮!

    图片 29不要点击任何按钮.png

  • 不要操作Apple Configurator
    2,让它保持上图的状态,然后打开Finder前往文件夹,或者直接快捷键command+shift+G并输入下面路径~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/

    图片 30前往文件夹.png图片 31前往文件夹2.png

解压Assets.car,
github上的工具,大家自行下载:https://github.com/pcjbird/AssetsExtractor

找到后,下载下来,然后切换回到资料库,会看到已下载的列表

点击前往,打开ipa包所在文件。将ipa文件copy出来。

最后,提取出来的资源文件,大家要注意版权,仅供参考,不要直接拿来商业使用。

图片 32

图片 33获取ipa包所在文件夹.png

 

这时候别忘了点击Apple Configurator
2窗口中的停止,你会发现刚才目录下的文件也消失了

2、右击Finder显示,查看本地

拿到ipa文件后,你可以将后缀.ipa改为.zip,然后解压

图片 34

图片 35修改文件类型.png就可以看到Payload下的包,显示包内容可以看到部分APP的资源以及Assets.car。图片 36解压.png

图片 37

如果你要解压Assets.car,
可以使用github上的工具

 

最后,提取出来的资源文件,大家要注意版权,仅供参考,不要直接拿来商业使用。

3、修改后缀为zip,然后双击解压,会变成下面这样

图片 38

然后,找到最里面的主体文件,显示包内容

图片 39

 

 

 4、然后我们会看到一些资源文件,其中包括一些appicon图标、启动图、Assets等。

图片 40图片 41图片 42

 

但这里要注意一点:

这里的Assets是不能直接获取里面的内容的,但实际情况大多数图标又都存放在这里,所以,我们需要借助一款工具来实现抓取素材。

iOS-Images-Extractor

这是一款Mac工具项目,我们要直接git下来项目运行。

图片 43

我们按照Github的说明:

先cd到你想存放项目的路径,或直接根目录 cd ~

cd ~

终端运行如下命令:

git clone https://github.com/devcxm/iOS-Images-Extractor
cd iOS-Images-Extractor
git submodule update --init --recursive
open iOSImagesExtractor.xcworkspace

 

等待项目打开后,运行项目:

出现界面后,把Assets.car拖拽到程序里,点Start

图片 44

 

 等待几秒后,素材抓取完成,点击Output Dir,查看解压出来的资源图片

图片 45

 

最后就能得到想要的图片啦

图片 46图片 47

 

 

enjoy~ 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图