在IOS中分析Assets.car文件

我试图减less我的iOS应用程序的总体大小,目前是48MB。 当我分析子文件夹,我发现Assets.car正在41MB。 我无法打开,看看哪一个正在占用那么多的空间。

我无法find有关Assets.car文件的任何好文档。 有人可以build议如何查看内容?

这个工具可以提取.car档案: https : //github.com/steventroughtonsmith/cartool

提取归档文件的步骤:

一旦你从github下载了zip,在Xcode中进行编译以生成命令行工具。 然后展开Products组,右键单击cartool文件,并在finder中find它。 然后你可以像这样运行这个工具:

  • 开放的terminal
  • cd /path/to/cartool
  • ./cartool /path/to/Assets.car /path/to/outputDirectory

如果您想浏览并提取资产目录,也可以使用我的应用程序Asset Catalog Tinkerer

资产目录零售商截图

运行苹果的assetutil:

 xcrun --sdk iphoneos assetutil --info Assets.car 

你会得到文件中每个项目的JSON描述。 像这样的东西:

  { "Height" : 60, "Scale" : 1, "RenditionName" : "D3801CE9-19F1-4CE9-97C6-7E1EFFFCAE89", "AssetType" : "Vector", "SizeOnDisk" : 10822, "Name" : "mailbox", "Idiom" : "universal", "Width" : 99 }, 

注意行"SizeOnDisk" : 10822

这个工具执行有限的.car操作,运行man assetutil的细节。


Assets.car似乎是iOS 7中最早出现的专有的归档文件。一些实用程序可以使用CoreUI框架的私有类CUICatalog来提取其内容:

  • acextract
  • ThemeEngine
  • iOS资源提取器
  • 资产目录修饰者

还有一个应用程序读取.car文件: 紧缩 9 $,15天的试用

运行strings Assets.car返回

 @(#)PROGRAM:CoreUI PROJECT:CoreUI-475.1.1 IBCocoaTouchImageCatalogTool-9.0 

运行Xcode-beta里面的find返回/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool ,这是一个模拟器可执行文件(i386 + x86_64)。 没有进一步调查,但我敢打赌,这个工具可以打开。车档案,如果你在模拟器内运行。

通用二进制文件似乎包含每个屏幕密度的多个图像分辨率。

一旦将应用程序上传到App Store,文件大小将小于您的通用二进制文件,因为每个设备只会获得适当的图像密度。

您可以在此查看文件大小:iTunes Connect>我的应用程序>您的应用程序>活动>您的生成> App Store文件大小