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 может сделать вещи намного проще в этой области.