[AI CC-CC2022] Создание расширения (extension) для illustrator

  • Автор темы Автор темы eugeny
  • Дата начала Дата начала

eugeny

Топикстартер
15 лет на форуме
Сообщения
922
Реакции
251
Здравствуйте,
необходимо создать панель (extension panel). Нагуглил много вариантов, как это сделать.
В меню Windows->Extensions появляется в списке моя панель. Но она открывается пустой.
Проблема, как я понимаю в логе ошибки: ERROR Signature verification failed for "com.example.print". Т.е. панель надо засертифицировать, перед тем как ее написать. Круто.

Может, кто сталкивался и подскажет решение данной проблемы?

В инете все просто описано: создаешь и все работает. У меня не работает.
Устанавливаю сторонние расширения – они работают. Но у них есть Meta-inf\signatures.xml.
Как его создать/получить не нашел.
Система Win10.
 
Думаю, дело не в этом. Прекрасно работают и неподписанные расширения, то что ваша панелька запускается - прямое тому свидетельство. А вот почему она пустая, похоже что это нехватка кого то еще. Не видя кода, ответ на этот очевидный вопрос дать сложно
 
Думаю, дело не в этом. Прекрасно работают и неподписанные расширения, то что ваша панелька запускается - прямое тому свидетельство. А вот почему она пустая, похоже что это нехватка кого то еще. Не видя кода, ответ на этот очевидный вопрос дать сложно
вот код manifest:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<ExtensionManifest Version="7.0" ExtensionBundleId="com.ex.printgraphica" ExtensionBundleVersion="1.0.0"
        ExtensionBundleName="printgraphica" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ExtensionList>
        <Extension Id="com.ex.printgraphica" Version="1.0" />
    </ExtensionList>
    <ExecutionEnvironment>
        <HostList>
            <!-- Uncomment Host tags according to the apps you want your panel to support -->
            <!-- Photoshop -->

            <Host Name="PHXS" Version="[15.0,15.9]" />
            <Host Name="PHSP" Version="[15.0,15.9]" />

            <!-- Illustrator -->
            <Host Name="ILST" Version="[18.0,22.0]" />
                   </HostList>
        <LocaleList>
            <Locale Code="All" />
        </LocaleList>
        <RequiredRuntimeList>
            <RequiredRuntime Name="CSXS" Version="7.0" />
        </RequiredRuntimeList>
    </ExecutionEnvironment>
    <DispatchInfoList>
        <Extension Id="com.ex.printgraphica">
и т.д.

вот лог CEP7-ILST.log:
Код:
2018-06-09 13:41:48:101 : INFO  PlugPlug version : 7.0.0.95
2018-06-09 13:41:48:118 : INFO  LogLevel : 1
2018-06-09 13:41:48:192 : ERROR Headlights service fails to log extension data.
2018-06-09 13:42:06:335 : ERROR Headlights service fails to log extension data.
2018-06-09 13:42:06:388 : ERROR PlugPlugUnloadExtension: PlugPlugErrorCode_extensionNotLoaded (SetIsLoaded: Extension <com.ex.printgraphica> currently not loaded)
2018-06-09 13:42:10:859 : ERROR Headlights service fails to log extension data.
2018-06-09 13:42:10:904 : ERROR PlugPlugUnloadExtension: PlugPlugErrorCode_extensionNotLoaded (SetIsLoaded: Extension <com.ex.printgraphica> currently not loaded)
код index.html:
Код:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
        
<link rel="stylesheet" href="css/topcoat-desktop-dark.min.css"/>
<link  id="hostStyle" rel="stylesheet" href="css/styles.css"/>

<title></title>
</head>

<body class="hostElt">

    <div id="content">       
        
        <div>               
            <button id="btn_test" class="topcoat-button--large hostFontSize">Call ExtendScript</button>               
        </div>   
        
    </div>
    
    <script src="js/libs/CSInterface.js"></script>
    <script src="js/libs/jquery-2.0.2.min.js"></script>

    <script src="js/themeManager.js"></script>
    <script src="js/main.js"></script>
      
</body>
</html>
 
Не знаю, c чего вы решили что ошибка загрузки в логе как то связана с сертификатами.
И где сам код экстеншна? Index.html пустой, но содержит ссылки на четыре яваскрипт модуля. Все вам правильно иллюстратор выдает.
 
Не знаю, c чего вы решили что ошибка загрузки в логе как то связана с сертификатами.
И где сам код экстеншна? Index.html пустой, но содержит ссылки на четыре яваскрипт модуля. Все вам правильно иллюстратор выдает.
разве он не должен выводить мне в div кнопку (button id="btn_test")?
Или я что-то не понимаю? Я создал шаблон через Brackets плагин СС Extension Builder, хотел посмотреть на кнопку, что все работает.
а мне пишет в логе CEPHtmlEngine7-ILST-21.1.0-com.ex.printgraphica.log: 2018-06-09 13:47:43:127 : ERROR Signature verification failed for "com.ex.printgraphica"!
с другой стороны запускаю плагин meas (размеры), у него CEPHtmlEngine7-ILST-21.1.0-com.wk.meas.log - пустой.
 
а мне пишет в логе CEPHtmlEngine7-ILST-21.1.0-com.ex.printgraphica.log: 2018-06-09 13:47:43:127 : ERROR Signature verification failed for "com.ex.printgraphica"!
с другой стороны запускаю плагин meas (размеры), у него CEPHtmlEngine7-ILST-21.1.0-com.wk.meas.log - пустой.
Что вас удивляет? Тот экстеншн подписан а ваш нет.
 
Попробуйте ссылки на скрипты убрать. Эти скрипты вообще существуют?
 
У меня, начиная с CC 2018, тоже подписка слетала. Попробуйте включить playerDebugMode! И еще, вы где отлаживаете ваше расширение, в какой папке его разрабатываете?
 
Последнее редактирование:
У меня, начиная с CC 2018, тоже подписка слетала. Попробуйте включить playerDebugMode! И еще, вы где отлаживаете ваше расширение, в какой папке его разрабатываете?
Да я включил playerDebugMode. причем для всех CEP )). По идее должно заработать в режиме отладки.
папки пробовал: <USER>\AppData\Roaming\Adobe\CEP\extensions\ и C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\
В результате, если подписываю расширение (через ZXPSignCmd) - оно работает все ок. Но работать/тестировать невозможно: изменения внес -- переподписывай и перезапускай люстру. Бред.
 
А файлик .debug кладете в папку?
 
А файлик .debug кладете в папку?
конечное,
сейчас получается так работает. Сделал кнопочку рефреша( location.reload ();). Редактировать на ходу можно только html и относящийся к нему js.
Для того чтобы редактировать файл jsx необходимо: выйти из люстры, внести изменения, переподписать, запустить люстру. Такой длинный этап тестирования )).
 
Такой вопрос: область переменных файла jsx(иллюстратор) и файла js(к html который) совпадает? или нужно передавать между собой?
 
Последнее редактирование модератором:
Такой вопрос: область переменных файла jsx(иллюстратор) и файла js(к html который) совпадает? или нужно передавать между собой?
Нужно передавать туда сюда, из расширения в Иллюстратор через csInterface.evalScript('code', callback()), из Иллюстратора в расширение через событие - нужно создать своё событие и вызывать его через plugplugExternalObject (событие - CSEvent)

p.s. Насчет тестирования, я отладку делаю, если интерфейс, то в фотошопе и делаю collapse расширения и потом обратно разворачиваю и оно перезагружает все, даже jsx, либо создаю вспомогательное расширение и через него открываю (т.е. создаю кнопку для закрытия текущего расширения (через csInterface.closeExtension();), и в другом открываю его через csInterface.requestOpenExtension('extensionID'); - и не надо перезагружать Иллюстратор // если Иллюстратор младше CC2018, т.к. баги с этим)

p.s. Одни костыли ;)
 
Последнее редактирование модератором:
  • Спасибо
Реакции: eugeny
области не совпадают

с иллюстратором такая интересная штука - в фотошопе у экстеншена есть параметр persistence, его можно включать/выключать. а вот в иллюстраторе панель всегда persistent. Я тоже по возможности отлаживаю в ps.
 
Насчет тестирования, я отладку делаю, если интерфейс, то в фотошопе и делаю collapse расширения и потом обратно разворачиваю и оно перезагружает все, даже jsx, либо создаю вспомогательное расширение и через него открываю (т.е. создаю кнопку для закрытия текущего расширения (через csInterface.closeExtension();), и в другом открываю его через csInterface.requestOpenExtension('extensionID'); - и не надо перезагружать Иллюстратор // если Иллюстратор младше CC2018, т.к. баги с этим)

p.s. Одни костыли ;)
Вот этот вообще великолепные костыли! Спасибо огромное. Добавил в Люстру дополнительное расширение с одной кнопкой csInterface.requestOpenExtension('extensionID'), а в тестируемое расширение добавил кнопку csInterface.closeExtension(). И создал бат-файл для быстрого создания подписи. Сейчас процесс выглядит уже приемлимым:
Закрываем расширение --> редактируем скрипт jsx и сохраняем --> запускаем бат-файл --> открываем расширение из дополнительного.
Бат-файл делает следующее: копирует папку расширения в определенную папку, где лежит (сам "батник") winrar и ZXPSignCmd; Подписывает расширение через ZXPSignCmd; извлекает из zxp - файл signatures; перемещает сигнатуры в нужную папку расширения.
 
  • Спасибо
Реакции: dumbm1