Анализ файла 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

Скриншот Tinkerer каталога активов

Вы можете попробовать онлайн-инструмент или плагин QLCARFiles QuickLook для Mac

Все ранее упомянутые инструменты не извлекают PDF-файлы правильно. В проекте есть утилита под названиемcarDumpкоторый правильно извлекает файлы.

Суммируя:

  1. Клонируйте проект с QLCARFileshttps://github.com/Timac/QLCARFiles .
  2. открыть в xcode
  3. Выберите схему carDump и соберите
  4. Используйте кли:
      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

Другие вопросы по тегам