在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文件大小