Проблема с использованием нескольких каталогов активов в XCode 5

У меня есть одно приложение, которое имеет 2 варианта, которые отличаются только брендингом. Для каждой версии у меня есть AppIcon и LaunchImage в каталоге активов. Я создал другую цель для каждой версии. Во второй версии, когда я пытаюсь выбрать AppIcon во втором каталоге активов, он по умолчанию остается первым. Удаление первого каталога активов, похоже, разрешает его, но я бы предпочел менее "хакерское" решение.

Ответ 1

Я думаю, что лучшим решением, которое я придумал, является переименование активов в последующих каталогах активов. Например, у вас может быть 2 каталога активов, которые содержат активы с именем AppIcon и LaunchImage. Во втором каталоге активов я переименовал AppIcon и LaunchImage в AppIcon1 и LaunchImage1. Поэтому теперь я могу выбрать их в разделе "Общие" целевых настроек сборки.

Ответ 2

  • Используйте тот же каталог активов для обеих целей.
  • Убедитесь, что он включен в обе цели (проверьте целевое членство с помощью инспектора файлов).
  • На каждой цели выберите соответствующее имя актива (значки).

Это будет работать, я использую его с 8 целями, поэтому...

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

Ответ 3

В моем случае я использую cocoa pods. cocoa pods script Pods-resources.sh каким-то образом вызвал проблему. удаление частей актива из script решило проблему.

Обязательно очистите проект и удалите папку с производными данными.

Детали, которые нужно удалить, можно найти здесь:

fooobar.com/questions/201887/...

Ответ 4

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

  • Я использовал XCode для создания каталога изображений для первой цели (File, New, File, Asset). Это имеет членство только для этой цели. Как предложил Марк Хорган, я назвал внутренний appIcon и launchImages, хотя бы для того, чтобы упростить для меня.

  • Затем я удалил этот каталог из своего проекта, используя возможность удаления ссылок.

  • Я повторил шаг 1 и создал каталог изображений для 2-й цели. У этого есть членство для этого 2-го цели только. Назначение каталога моей цели было сложным, потому что XCode предлагал только "Не использовать каталог изображений" в качестве опции. Я выбираю этот параметр, а затем XCode предлагает "Использовать каталог активов". Я выбрал свой новый каталон. Снова я назвал внутренний appIcon и launchImages ссылку на вторую цель, чтобы я мог ее распознать.

  • Как и в 2, я удалил каталог с удалением ссылок delete.

  • Отправляя XCode на мгновение, я открыл окно Finder и нашел два моих различные файлы images.xcassets, которые были помещены в разные каталогов XCode. Я переименовал эти файлы в каждую ссылку цель. (Я также переместил их в главную папку, но, конечно же, что предпочтение.)

  • Назад в XCode, я (re) добавил xcassets   файлов, по одному, обеспечивая их надлежащее добавление к   их цели и скопированы на ресурсы.

  • Затем в XCode я выбран   каждой цели и использовать вкладку "Общие" для правильного указания изображения   каталог для каждой цели.

Ответ 5

Я запускаю несколько целевых объектов, каждый из которых имеет свой собственный файл каталога ресурсов, как с AppIcon, LaunchImage, так и с обычным я использую в раскадровке для фона.

Похоже на ту же самую проблему, что и при выборе каталога активов для значков приложений и запуска изображений, при создании не было неправильного. Я решил это, изменив "Target Membership" для каждого каталога активов - файла .xcassets. Он устанавливает так, чтобы каждый файл xcassets имел только связанную с ним цель. Таким образом, для каждого каталога актива выбирается только одна цель. Теперь это правильный AppIcon и LaunchImage, доступные для каждой цели.

Ответ 6

Я использовал решение @user216661, но в моем случае мне не нужно было делать шаги 2-7.

Я создал папку с конкретным именем для конкретной цели (в моем случае, одна папка для каждого целевого объекта). Затем я добавил изображения в эти папки xcassets, перетащив их из Finder. То же самое для значков и изображений запуска. Мне не нужно было настраивать графические имена для каждой цели.

В этом решении вы не храните графику вне папок с ресурсами.

Ответ 7

Как просто изменить параметры в настройках сборки. Для меня это сработало.