Когда следует проверять "Копировать элементы при необходимости" для встроенных двоичных файлов?

введите описание изображения здесь Когда я попытался поместить сторонний фреймворк (установленный Carthage) во встроенные двоичные файлы, я получил такую ​​возможность. Я запутался, поскольку "встроенные двоичные файлы - это двоичные файлы, которые копируются в ваш пакет приложений при сборке проекта", это уже копия, а не ссылка, почему я хочу получить копию копии?

2 ответа

Решение

"Копировать элементы при необходимости" не имеет ничего общего со сборкой вашего приложения. Это означает, что скопировано в папку проекта, прямо сейчас (если его уже нет в папке проекта). Я предлагаю вам всегда говорить "да", потому что в противном случае ваш проект может в конечном итоге зависеть от того, чего нет в папке проекта, и которое вы, следовательно, можете выбросить или переименовать случайно, что приведет к сбою вашего проекта.

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

Я вижу два случая, по которым это может быть удобно:

  1. У вас есть несколько проектов, которые используют один и тот же файл и хотите уменьшить пространство,
  2. Вам крайне необходимо сэкономить место на вашем компьютере, и в этом случае я бы купил дополнительное хранилище для вашего компьютера.

Редактировать: даже если вы скопировали файл в XCode, он обрабатывает его как ссылку на файл, поэтому вы видите это сообщение.

Copy items if needed обычно (но не всегда, например, проект уже содержит этот элемент) копирует файлы в каталог вашего проекта, в результате вы можете использовать relative path(вместо абсолютного) безопасно. Например, когда вы используете какой-то контроль версий, у членов вашей команды не будет проблем с решением проблем с путями.

В случае стороннего фреймворка вы можете использовать $(PROJECT_DIR) в Build Settings -> Framework Search Paths

[Создание групп против ссылки на создание папки]

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