Как я могу рассказать каталог активов (.xcassets) использовать один и тот же образ для нескольких колодцев изображений?
У нас есть несколько проектов приложений Xcode, и мы обновляем их все, чтобы использовать последние функции Xcode 5, включая каталоги активов (.xcassets
).
Все наши изображения default
(запуск) уже включают интервал для строки состояния, и мы хотим использовать эти изображения для изображений запуска iOS 5,6
и iOS 7
. Кроме того, мы не хотим включать в проект несколько копий одного и того же изображения.
Один из наших проектов правильно настроен для использования одних и тех же изображений для обоих наборов изображений. Тем не менее, это было настроено более точно.
Помимо редактирования файла Contents.json
напрямую (что может быть обходным путем в последнем случае, если это необходимо), как мы можем это сделать, используя редактор графического интерфейса Xcode для каталога активов?
Что мы уже пробовали
1) Перетаскивание изображения в другое положение... просто перемещает изображение в другой набор
2) Перетаскивание одного и того же файла из Finder в каталог активов... создает новую копию изображения
3) Перетаскивание изображения с помощью option
(alt
) нажата... создает новую копию изображения
Ответы
Ответ 1
Вы можете щелкнуть правой кнопкой мыши файл .xcassets и выбрать "Показать в Finder". Перейдите в папку "Image.launchimage" и откройте файл Contents.json в текстовом редакторе. Здесь вы можете видеть, что неназначенные слоты не содержат "имя файла". Вы можете добавить это вручную. Например, измените следующее:
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
}
В:
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "[email protected]~ipad.png",
"scale" : "2x"
}
Теперь сохраните файл и вуаля!
Ответ 2
Я решил это, используя скрипты сборки, чтобы скопировать правильный файл xcassets для каждой цели. Подробности здесь
Ответ 3
Я думаю, что нашел решение: просто перетащите изображения по умолчанию, которые вы хотите использовать для iOS 6 и 7 в ведро iOS 6. Вы получаете предупреждение о том, что у меня нет изображения только для iOS7, но сборка работает в iOS7 simulato, iOS7 iPhone и iPad iOS7.
Ответ 4
Я решил это, удалив старые xcassets и добавив новые xcassets, используя Не использовать каталоги приложений
Ответ 5
В моем случае я использую cocoa pods. cocoa pods script Pods-resources.sh
каким-то образом вызвал проблему. Удаление компонентов актива из script решило проблему.
Обязательно очистите проект и удалите папку с производными данными.
Детали, которые нужно удалить, можно найти здесь:
fooobar.com/questions/201887/...
Ответ 6
Я обновил до cocopods 0.37, и проблема была решена. Если вы использовали cocopods, значит, это была его ошибка.