分析iOS中的Assets.car文件

时间:2014-03-25 09:34:36

标签: ios iphone ios7 ios6

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

我找不到有关Assets.car文件的任何好文档。有人可以建议如何查看内容吗?

6 个答案:

答案 0 :(得分:103)

此工具可以提取.car存档:https://github.com/steventroughtonsmith/cartool

提取存档的步骤:

从github下载zip后,在Xcode中编译它以生成命令行工具。然后展开Products组并右键单击cartool文件并在finder中找到它。然后,您可以像这样运行该工具:

  • open terminal
  • cd /path/to/cartool
  • ./cartool /path/to/Assets.car /path/to/outputDirectory

答案 1 :(得分:49)

运行Apple的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似乎是Apple的专有存档,最初出现在iOS 7中。一些实用程序能够使用CoreUI框架的私有类CUICatalog提取其内容:

还有一个应用程序可以读取.car文件:crunch 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)。没有进一步调查,但我敢打赌,如果你在模拟器中运行它,这个工具可以打开.car档案。

答案 2 :(得分:44)

如果您想浏览和提取资产目录,还可以使用我的应用Asset Catalog Tinkerer

Asset Catalog Tinkerer screenshot

答案 3 :(得分:0)

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

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

您可以在此处检查文件大小:iTunes Connect>我的应用>你的应用>活动>你的构建> App Store文件大小

答案 4 :(得分:0)

Guilherme Rambo说是正确的,而不是Lewis42。

假设Asserts.car中的pdf文件(' a.pdf')。

如果使用cartool,您将获得三个png文件(a.png / a @ 2x.png / a @ 3x.png),文件格式已更改。

但是,如果您使用AssetCatalogTinkerer,则可以预览a.pdf文件(未更改文件格式)。

答案 5 :(得分:0)

您可以尝试使用online tool或Mac上的QLCARFiles QuickLook plugin