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

eugeny

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

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

В инете все просто описано: создаешь и все работает. У меня не работает.
Устанавливаю сторонние расширения – они работают. Но у них есть Meta-inf\signatures.xml.
Как его создать/получить не нашел.
Система Win10.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Думаю, дело не в этом. Прекрасно работают и неподписанные расширения, то что ваша панелька запускается - прямое тому свидетельство. А вот почему она пустая, похоже что это нехватка кого то еще. Не видя кода, ответ на этот очевидный вопрос дать сложно
 

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Думаю, дело не в этом. Прекрасно работают и неподписанные расширения, то что ваша панелька запускается - прямое тому свидетельство. А вот почему она пустая, похоже что это нехватка кого то еще. Не видя кода, ответ на этот очевидный вопрос дать сложно
вот код 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>
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Не знаю, c чего вы решили что ошибка загрузки в логе как то связана с сертификатами.
И где сам код экстеншна? Index.html пустой, но содержит ссылки на четыре яваскрипт модуля. Все вам правильно иллюстратор выдает.
 

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Не знаю, 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 - пустой.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
а мне пишет в логе 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 - пустой.
Что вас удивляет? Тот экстеншн подписан а ваш нет.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Попробуйте ссылки на скрипты убрать. Эти скрипты вообще существуют?
 

Ladygin Alexander

Участник
Сообщения
12
Реакции
4
У меня, начиная с CC 2018, тоже подписка слетала. Попробуйте включить playerDebugMode! И еще, вы где отлаживаете ваше расширение, в какой папке его разрабатываете?
 
Последнее редактирование:

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
У меня, начиная с CC 2018, тоже подписка слетала. Попробуйте включить playerDebugMode! И еще, вы где отлаживаете ваше расширение, в какой папке его разрабатываете?
Да я включил playerDebugMode. причем для всех CEP )). По идее должно заработать в режиме отладки.
папки пробовал: <USER>\AppData\Roaming\Adobe\CEP\extensions\ и C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\
В результате, если подписываю расширение (через ZXPSignCmd) - оно работает все ок. Но работать/тестировать невозможно: изменения внес -- переподписывай и перезапускай люстру. Бред.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
А файлик .debug кладете в папку?
 

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
А файлик .debug кладете в папку?
конечное,
сейчас получается так работает. Сделал кнопочку рефреша( location.reload ();). Редактировать на ходу можно только html и относящийся к нему js.
Для того чтобы редактировать файл jsx необходимо: выйти из люстры, внести изменения, переподписать, запустить люстру. Такой длинный этап тестирования )).
 

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Такой вопрос: область переменных файла jsx(иллюстратор) и файла js(к html который) совпадает? или нужно передавать между собой?
 
Последнее редактирование модератором:

Ladygin Alexander

Участник
Сообщения
12
Реакции
4
Такой вопрос: область переменных файла jsx(иллюстратор) и файла js(к html который) совпадает? или нужно передавать между собой?
Нужно передавать туда сюда, из расширения в Иллюстратор через csInterface.evalScript('code', callback()), из Иллюстратора в расширение через событие - нужно создать своё событие и вызывать его через plugplugExternalObject (событие - CSEvent)

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

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
области не совпадают

с иллюстратором такая интересная штука - в фотошопе у экстеншена есть параметр persistence, его можно включать/выключать. а вот в иллюстраторе панель всегда persistent. Я тоже по возможности отлаживаю в ps.
 

eugeny

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

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