Nano Hash - криптовалюты, майнинг, программирование

Что влияет на размер активов в приложении IOS и как его уменьшить?

У меня есть приложение для iOS, созданное в Xcode 6, которое использует каталог активов для хранения 71 МБ изображений. Я включил только изображения @3x в свой каталог активов, чтобы попытаться сохранить размер приложения менее 100 МБ. Единственным исключением из правила @3x является то, что я включил изображения @1x и @2x для группы AppIcon.

Все изображения представляют собой файлы .JPG, за исключением файлов AppIcon, которые представляют собой файлы .png.

Когда я архивирую и создаю файл .IPA, размер IPA составляет 117 МБ. Когда я открываю и смотрю на размер файла Asset.car в .IPA, я вижу, что он составляет 130 МБ. Сравните это с каталогом ресурсов в проекте, размер которого составляет 71 МБ. Я указываю на это, чтобы было ясно, что это не другой скомпилированный код, который занимает 40 МБ.

Я хотел бы заархивировать это приложение, чтобы размер файла не превышал 80-90 МБ, если это возможно. IPA должен оставаться менее 100 МБ, учитывая 70 МБ ресурсов, но я хотел бы знать, как это сделать или какие другие шаги мне, возможно, потребуется предпринять или просмотреть, чтобы понять, почему я получаю 130 МБ файла ресурсов в IPA для 70 МБ изображений. .

03.02.2015

  • Глядя на активы в ipa по сравнению с каталогом активов, есть ли больше активов или они больше? Если последние, то какие из них больше? 03.02.2015
  • Вы используете PNG или JPEG? Если вы используете PNG, вы можете добавить его в каталог активов, и он сожмет их для вас и более или менее превратит их в карту изображений. У нас была похожая проблема в нашем приложении, когда мы пытались использовать JPEG в каталоге активов, мы в итоге вытащили их и поместили в папку Resources. 03.02.2015
  • @cwitty- я уточнил тип файла. 03.02.2015
  • @zaph-Файл Assets.car в IPA имеет размер 132,1 МБ, тогда как размер папки каталога активов в проекте составляет 70 МБ. 03.02.2015
  • Файлы в папке приложений ipa Asset Folder тоже в формате jpg? Или некоторые из них были изменены? Возможно, другая настройка сжатия. Вам нужно сравнить некоторые файлы из исходного проекта с ipa. 03.02.2015
  • Привет, @zaph Нет папки с активами приложения ipa. Есть только файл Asset.car, в котором все изображения объединены в проприетарном формате. Можете ли вы предложить открыть их, чтобы я мог просмотреть и ответить на вопрос? 04.02.2015
  • Получите cartool, соберите и запустите файл Assets.car. Затем сравните с тем, что вы ожидаете. Это простой инструмент командной строки. 04.02.2015
  • Привет Шон. Что касается отрицательных голосов, я бы не беспокоился о них. Если вы хотите отметить их или попросить оставить отзыв, лучше всего добавить комментарий (хотя, на мой взгляд, в этом тоже нет большой ценности). Мы стараемся не поощрять комментирование голосования в самих постах, так как большинство будущих читателей не будут голосовать, и поэтому это обсуждение не будет для них интересным. Спасибо! 24.09.2015

Ответы:


1

Появился новый инструмент CAR: iOS-Asset-Extractor. Это кажется лучшим решением, чем «cartool» ниже.

Получите cartool, создайте и запустите свой файл Assets.car. Это создаст каталог, содержащий файлы изображений из Assets.car. Это простой инструмент командной строки. Не идеально, но это должно помочь вам понять, что происходит.

Затем сравните с тем, что вы ожидаете, и, надеюсь, вы сможете понять, что происходит.

Насколько я понимаю, файлы .jpg конвертируются в .png. Если у вас есть большие активы, подумайте о том, чтобы включить их напрямую или в виде ссылки на папку. Это особенно верно, если вы читаете изображения в своем коде.

04.02.2015

2

Статья на Assets.car в 6 раз больше, чем реальная папка Images.xcassets в архиве, кажется, ответ.

Весь набор файлов JPEG в моем каталоге активов преобразуется в файлы PNG, которые значительно больше. Я преобразовал все, кроме моих AppIcons и LaunchImage, из каталога активов в обычную папку. Итак, на тот момент у меня была папка, полная файлов JPEG и небольшой каталог активов.

Когда я создал архив, он был 67 МБ, так что значительно меньше!

04.02.2015
  • Кажется, это уже не так. Я прокомментировал связанный вопрос. Вы пробовали недавно с Xcode 7? 13.09.2015
  • @seabass У меня нет, но вопрос помечен специально для xcode6. 14.09.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..