Подтвердить что ты не робот

Почему Xcode копирует неизменные ресурсы при создании устройства?

Я работаю с довольно крупным проектом для iOS, и я не могу не заметить, что Xcode копирует сотни ресурсов (текстуры, спрайты, звуковые файлы и т.д.), которые вообще не изменились так как последний раз я строил это устройство. Это делает кодирование действительно, очень медленным, когда каждая сборка занимает 2-4 минуты, чтобы всплывать на устройстве.

Есть ли способ заставить Xcode распознавать, что он делает избыточные вещи или записывает script, что позволяет ему быть более умным о том, как он передает ресурсы на устройство?

PS Я понимаю, что для приложения не может быть встроенной функции добавления приложений. Надеюсь, это не так.

4b9b3361

Ответ 1

Вы можете попробовать добавить еще одну цель в проект и назовите ее "без ресурсов". Исключите все тяжелые ресурсы из этой цели. В первый раз вам нужно запустить приложение со всеми целевыми ресурсами, в следующий раз используйте цель "без ресурсов". Если вы добавили что-то в проект, вы должны использовать первую цель.

Ответ 2

iOS поддерживает только развертывание полных пакетов приложений, которые подписаны на устройство. Процесс развертывания отладочной сборки на устройстве - это.

  • Скомпилировать измененный исходный код и подписать двоичный файл
  • Alpha pre-multiply PNG images
  • Создайте папку с ресурсами приложения и двоичными внутри
  • Подпишите содержимое папки и создайте ZIP файл с папкой и подписью
  • Скопируйте ZIP файл (.ipa) на устройство

К сожалению, я бы предположил, что время расходуется на # 3 и # 4, которое создает каждую сборку. Я не видел возможности ускорить это. Если у вас много изображений PNG, вы можете попросить Xcode пропустить Шаг 2.

Подход NeverBe звучит как отличная идея, если ваше приложение может позволить вам не включать многие ресурсы в течение большей части времени, которое вы разрабатываете. Вы могли бы альтернативно иметь второй набор значительно меньших/фиктивных ресурсов, которые вы могли бы включить и выключить.

Ответ 3

Иногда XCode действительно помещает неизменные ресурсы в пакет. Обычно, когда вы меняете файлы Finder, а не XCode.

Сделать проект → Очистить, чтобы выполнить полную перестройку