分析iOS中的Assets.car文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析iOS中的Assets.car文件相关的知识,希望对你有一定的参考价值。
我试图减少目前48MB的ios应用程序的整体大小。当我分析子文件夹时,我发现Assets.car占用了41MB。我无法打开并看到哪一个占用了那么多空间。
我找不到有关Assets.car文件的任何好文档。有人可以建议如何查看内容吗?
该工具可以提取.car存档:https://github.com/steventroughtonsmith/cartool
提取存档的步骤:
从github下载zip后,在Xcode中编译它以生成命令行工具。然后展开Products
组并右键单击cartool
文件并在finder中找到它。然后,您可以像这样运行该工具:
- 开放式终端
cd /path/to/cartool
./cartool /path/to/Assets.car /path/to/outputDirectory
运行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档案。
如果您想浏览和提取资产目录,您也可以使用我的应用程序Asset Catalog Tinkerer
通用二进制文件似乎包含每个屏幕密度的多个图像分辨率。
将应用程序上传到App Store后,文件大小将小于通用二进制文件,因为每个设备只能获得适当的图像密度。
您可以在此处检查文件大小:iTunes Connect>我的应用程序>您的应用程序>活动>您的构建> App Store文件大小
Guilherme Rambo说是正确的,而不是Lewis42。
假设在Asserts.car中有一个pdf文件('a.pdf')。
如果使用cartool,您将获得三个png文件(a.png / a @ 2x.png / a @ 3x.png),文件格式已更改。
但是,如果您使用AssetCatalogTinkerer,则可以预览a.pdf文件(未更改文件格式)。
以上是关于分析iOS中的Assets.car文件的主要内容,如果未能解决你的问题,请参考以下文章
Analysing Assets.car file in IOS