Анализ файла Assets.car в iOS
Я пытаюсь уменьшить общий размер моего приложения для iOS, которое в настоящее время составляет 48 МБ. Когда я анализировал подпапки, я обнаружил, что Assets.car занимает 41 МБ. Я не могу открыть и посмотреть, какой из них занимает столько места.
Я не мог найти хорошую документацию относительно файла Assets.car. Может кто-нибудь подсказать, как просмотреть содержимое?
7 ответов
Этот инструмент может извлечь.car архив: https://github.com/steventroughtonsmith/cartool
Шаги для извлечения архива:
Как только вы загрузили zip с github, скомпилируйте его в Xcode, чтобы создать инструмент командной строки. Затем разверните Products
группа и щелкните правой кнопкой мыши на cartool
файл и найдите его в Finder. Затем вы можете запустить инструмент следующим образом:
- открытый терминал
cd /path/to/cartool
./cartool /path/to/Assets.car /path/to/outputDirectory
Запустите актив Apple:
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. Некоторые утилиты могут извлекать его содержимое с помощью частного класса. CUICatalog
платформы CoreUI:
Существует также приложение, которое читает файлы.car: crunch 9 $, 15-дневная пробная версия
Бег strings Assets.car
возвращенный
@(#)PROGRAM:CoreUI PROJECT:CoreUI-475.1.1
IBCocoaTouchImageCatalogTool-9.0
Бег find
вернулась бета-версия Xcode /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool
, который является исполняемым файлом симулятора (i386 + x86_64). Дальнейших исследований не проводил, но держу пари, что этот инструмент может открывать архивы.car, если вы запустите его внутри симулятора.
Если вы хотите просматривать и извлекать каталоги активов, вы также можете использовать мое приложение Asset Catalog Tinkerer
Вы можете попробовать онлайн-инструмент или плагин QLCARFiles QuickLook для Mac
Все ранее упомянутые инструменты не извлекают PDF-файлы правильно. В проекте есть утилита под названиемcarDump
который правильно извлекает файлы.
Суммируя:
- Клонируйте проект с QLCARFileshttps://github.com/Timac/QLCARFiles .
- открыть в xcode
- Выберите схему carDump и соберите
- Используйте кли:
mkdir output
carDump Assets.car output
Гильерме Рэмбо сказал правильно, а не Льюис42.
Предположим, PDF-файл ("a.pdf") в Asserts.car.
Вы получите три файла png (a.png/a@2x.png/a@3x.png), если вы используете cartool, формат файла был изменен.
Но если вы используете AssetCatalogTinkerer, вы можете просмотреть файл a.pdf (формат файла не изменился).
Универсальные двоичные файлы, кажется, содержат несколько разрешений изображения для каждой плотности экрана.
После того, как приложение загружено в App Store, размер файла будет меньше, чем ваш универсальный двоичный файл, потому что каждое устройство будет получать только соответствующую плотность изображения.
Вы можете проверить размеры файлов здесь: iTunes Connect> Мои приложения> Ваше приложение> Активность> Ваша сборка> Размер файла App Store