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

lipatkin

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

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

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 254
Оценка реакций
8 553
Думаю, дело не в этом. Прекрасно работают и неподписанные расширения, то что ваша панелька запускается - прямое тому свидетельство. А вот почему она пустая, похоже что это нехватка кого то еще. Не видя кода, ответ на этот очевидный вопрос дать сложно
 

lipatkin

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

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 254
Оценка реакций
8 553
Не знаю, c чего вы решили что ошибка загрузки в логе как то связана с сертификатами.
И где сам код экстеншна? Index.html пустой, но содержит ссылки на четыре яваскрипт модуля. Все вам правильно иллюстратор выдает.
 

lipatkin

Топикстартер
12 лет на форуме
Сообщения
415
Оценка реакций
90
Не знаю, 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_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 254
Оценка реакций
8 553
а мне пишет в логе 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 - пустой.
Что вас удивляет? Тот экстеншн подписан а ваш нет.
 

lipatkin

Топикстартер
12 лет на форуме
Сообщения
415
Оценка реакций
90
Что вас удивляет? Тот плагин подписан а ваш нет.
Ну да, я подумал может в этом проблема отображения панели?
Я набираю любой текст html в index, но его нет в панели.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 254
Оценка реакций
8 553
Попробуйте ссылки на скрипты убрать. Эти скрипты вообще существуют?
 

Ladygin Alexander

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

lipatkin

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

Skvoznyak

12 лет на форуме
Сообщения
4 062
Оценка реакций
1 674
А файлик .debug кладете в папку?
 

lipatkin

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

lipatkin

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

Ladygin Alexander

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

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

p.s. Одни костыли ;)
 
Последнее редактирование модератором:

Skvoznyak

12 лет на форуме
Сообщения
4 062
Оценка реакций
1 674
области не совпадают

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

lipatkin

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

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