Xcode5 xcassets - как навалом заменить изображения?
Скажем, у меня есть проект со 100 изображениями, которые я импортировал в папку внутри основного файла Images.xcassets. Затем я получаю обновления для 67 из этих изображений от моего графического дизайнера - есть ли простой способ переместить эти обновления изображений в папку xcassets?
Как бы то ни было, я открываю файл xcassets в Xcode, и для каждого измененного изображения я перетаскиваю новое изображение в маленькую коробку 2x или 1x - я должен сделать это 67 раз! Я не могу просто перетащить файлы в Finder (старый способ), потому что каждое изображение в папке xcassets имеет свою собственную подпапку. Если я не использую файл xcassets для своих изображений, я могу легко обновить файлы, выполнив это. Но xcassets должны "упростить управление вашими активами".
Хорошо - так что мне не хватает?
Ответы
Ответ 1
Я не думаю, что тебе что-то не хватает. Папки активов просто не продуманы. Они вносят несколько преимуществ, но гораздо больше недостатков.
Возьмем, к примеру, образ запуска. Вы не можете установить 4-дюймовые изображения сетчатки и сетчатки для разных версий iOS через активы без копирования файлов Xcode. Думаю, у нас нет другого выбора, кроме как отправлять запросы на улучшение через репортер ошибок и надеяться...
Ответ 2
Нет необходимости в Ruby, вы можете запустить эту оболочку script, чтобы найти файлы в папке origin (где находятся ваши обновленные изображения), найти файлы с тем же именем в своем назначении (папка .xcassets) и перезапишите их с обновленной версией. Отлично работает!
find ORIGIN FOLDER PATH NAME -name '*.png' | while read f; do f2=$(find DESTINATION FOLDER PATH -name "${f##*/}"); [[ $f2 ]] && cp "$f" "$f2"; done
Ответ 3
Я написал ruby script для автоматизации этой задачи.
Пожалуйста, следуйте приведенной ниже ссылке.
https://gist.github.com/shirishgone/8036382
Ответ 4
Я начал отбрасывать изображения, подобные изображениям запуска и приложения, в отдельной папке в моем файле xcassets, так как эти изображения редко меняются. Затем, когда мне нужно повторно импортировать изображения или добавлять новые, я удаляю существующие изображения (за исключением отдельной папки) и повторно импортирую все (кроме изображений, которые я отложил). Он работает чисто и не нарушает мой код или раскадровку.
Или вы можете перетащить в поисковик, вам просто нужно открыть папку .xcassets в Finder и поместить изображения в правильные каталоги/изображения. Xcode меняет структуру каталогов и аналогично прошлому, если изображения сохраняют одно и то же имя файла, вы можете перезаписать их в Finder, и Xcode будет обновляться. Вам не нужно возиться с файлом .xcassets в Xcode для простого изменения, как это, хотя немного больно перетаскивать каждое изображение в соответствующий набор изображений, а script может сделать вещи намного проще в этой области.
Ответ 5
Я не нашел быстрый способ, поэтому сам написал. На основе python. Наслаждаться.
https://github.com/qdvictory/happyxcasset