RedMadRobot / figma-export

Command line utility to export colors, typography, icons and images from Figma to Xcode / Android Studio project
MIT License
719 stars 115 forks source link

File doesn't exist #112

Closed ink1804 closed 2 years ago

ink1804 commented 2 years ago

Добрый день, пытаюсь настроить экспорт с помощью вашего инструмента, и не могу побороть одну ошибку при попытке экспорта иконок. Android, команда: figma-export icons -i figma-export.yaml Error: Error Domain=NSCocoaErrorDomain Code=4 "The file “ic_16_key_emergency.xml” doesn’t exist." UserInfo={NSFileOriginalItemLocationKey=file:///<***>/main/res/figma-export-icons/drawable/ic_16_key_emergency.xml, NSURL=file:///<***>/main/res/figma-export-icons/drawable/ic_16_key_emergency.xml, NSFileNewItemLocationKey=file:///var/folders/35/z_7ddyx97gd4ll0700b8hy9h0000gn/T/4098A86C-D6D1-4F07-8069-86BE1C879FF1/ic_16_key_emergency.xml, NSUnderlyingError=0x7fbd62c3e620 {Error Domain=NSCocoaErrorDomain Code=4 "The file “ic_16_key_emergency.xml” doesn’t exist." UserInfo={NSURL=file:///var/folders/35/z_7ddyx97gd4ll0700b8hy9h0000gn/T/4098A86C-D6D1-4F07-8069-86BE1C879FF1/ic_16_key_emergency.xml, NSFilePath=/var/folders/35/z_7ddyx97gd4ll0700b8hy9h0000gn/T/4098A86C-D6D1-4F07-8069-86BE1C879FF1/ic_16_key_emergency.xml, NSUnderlyingError=0x7fbd62c3eaf0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}}}

При этом файлы .svg файлы качаются в папку указанную по последней ссылке, но не экспортируются в проект. С цветами и картинками(.png) все ок. Подскажите, что я делаю не так? figma-export v0.24.0

subdan commented 2 years ago

Приветствую. Да есть такая проблема. Исправлю.

subdan commented 2 years ago

Проблема возникает из-за того что FigmaExport для конвертации SVG в XML использует vd tool (Vector Drawable Tool). Этой утилите для запуска нужна Java. У вас должна быть установлена Java на компьютере.

ink1804 commented 2 years ago

Java естественно установлена. @subdan как оказалось, чтобы работало хоть как-то, нужно добавить в проект папку vd-tool вместе со всеми .jar-никами, которые лежат в zip-e с версией с версией figma-export. Но это все равно крашится на некоторых файлах с этой ошибкой. Нет случайно опции игнорирования ошибок, чтобы экспрот не останавливался на половине прогресса?

subdan commented 2 years ago

как оказалось, чтобы работало хоть как-то, нужно добавить в проект папку vd-tool вместе со всеми .jar-никами

Рекомендую устанавливать FigmaExport через Homebrew.

Но это все равно крашится на некоторых файлах с этой ошибкой.

Можете прислать мне файлы которые не удаётся конвертировать в XML?

Нет случайно опции игнорирования ошибок, чтобы экспрот не останавливался на половине прогресса?

Такой опции нет. Если экспортнулась только половина иконок, то это проблема. Придется вторую половину вручную экспортировать чего не хотелось бы делать. Надо понять причину почему такое происходит и исправить. Для этого мне нужно увидеть эти файлы. Возможно их невозможно конвертировать в XML.

ink1804 commented 2 years ago

Рекомендую устанавливать FigmaExport через Homebrew. Figma-export установлен через homebrew, я имелл виду только vd-tool с .jar файлами) Можете прислать мне файлы которые не удаётся конвертировать в XML? Прикладываю как пример 2 файла, .svg и .png, которые у нас не экспортируются. .svg файл при этом нормально экспортируется через android studio обычным способом. ❖ Body-2.zip ❖ Body.zip

subdan commented 2 years ago

Figma-export установлен через homebrew, я имелл виду только vd-tool с .jar файлами)

vd-tool с jar файлами устанавливается автоматически вместе с FigmaExport и располагается в /usr/local/bin/. Проверьте есть ли у вас файлы /usr/local/bin/vd-tool и /usr/local/bin/figma-export.

Прикладываю как пример 2 файла, .svg и .png, которые у нас не экспортируются. .svg файл при этом нормально экспортируется через android studio обычным способом.

Экспортировал их только что с помощью FigmaExport и vd-tool. Проблем никаких не возникло.

Сможете мне дать доступ к вашему Figma файлу. Я попробую экспортировать ваши иконки и посмотрю есть ли проблемы.

subdan commented 2 years ago

У вас в Figma во фрейме с иконками все иконки векторные? Если часть иконок растровая то экспортируя их в SVG конвертировать их в XML не получится потому что Android не поддерживает SVG с внедренной растровой картинкой.

ink1804 commented 2 years ago

vd-tool с jar файлами устанавливается автоматически вместе с FigmaExport и располагается в /usr/local/bin/. Проверьте есть ли у вас файлы /usr/local/bin/vd-tool и /usr/local/bin/figma-export. да, но андроид студия пытается залезть в папку ./vd-tool/bin/ чтобы запустить vd-tool, как поменять путь к нему я не нашел, к сожалению. Сможете мне дать доступ к вашему Figma файлу. Я попробую экспортировать ваши иконки и посмотрю есть ли проблемы. Доступ к проекту, к сожалению, дать не могу...

subdan commented 2 years ago

Доступ к проекту, к сожалению, дать не могу...

Сможете вынести иконки в отдельный Figma File и дать мне доступ к нему?

ink1804 commented 2 years ago

Сможете вынести иконки в отдельный Figma File и дать мне доступ к нему? https://www.figma.com/file/bX3G145a7h7GvTlCINOmTs/%E2%9D%96-Body-Copy-Copy Вынес кусочки в драфты в том виде, как у нас настроено в фигме

subdan commented 2 years ago

Нашел две проблемы

  1. Иконка ic_24_social_tik_tok содержит неподдерживаемые атрибуты:

    ERROR @ line 7: <filter> is not supported
    ERROR @ line 8: <feFlood> is not supported
    ERROR @ line 9: <feGaussianBlur> is not supported
    ERROR @ line 10: <feComposite> is not supported
    ERROR @ line 11: <feBlend> is not supported

    Блюр точно не поддерживается в Android XML файле. Удалите в Figma фильтры у этой иконки.

  2. У вас есть дубликаты иконок — несколько иконок с одинаковым названием:

image image

Удалите дубликаты или переименуйте.

ink1804 commented 2 years ago

Дизайнер все исправил, теперь все работает отлично, спасибо!