Как безопасно и удобно распространять тестовые проекты в автомобильных испытаниях и на производственных линиях? Как защитить ключевые настройки от копирования и изменения? В TSMaster для этого есть две функции: публикация приложения и зашифрованная публикация — упаковка одним кликом, шифрование и гибкое лицензирование. Разбираем обе и отвечаем на частые вопросы.
Ключевые слова: TSMaster, публикация приложения, зашифрованная публикация, TSAPP, T7z/PT7z, регистрационный код.
1. Что такое публикация приложения и зашифрованная публикация
TSMaster позволяет упаковать текущий проект в отдельный исполняемый файл публикации, не раскрывая деталей проектирования: получателю достаточно двойного клика, чтобы запустить его.
| Функция | Формат | Ключевые особенности |
|---|---|---|
| Публикация приложения | TSAPP | Можно скрывать модули или части интерфейса, шифрование баз данных и конфигурации, защита от копирования и изменения |
| Зашифрованная публикация | T7z / PT7z | Помимо шифрования: парольная защита, теневой режим, ограничения по времени и числу запусков, регистрационный код с привязкой к оборудованию |
2. Зашифрованная публикация
Зашифрованная публикация особенно полезна при передаче тестовых скриптов и калибровочных проектов поставщикам, производственным линиям и заказчикам.
Функция упаковывает текущий проект в файл T7z или PT7z: при первом использовании файл импортируется и распаковывается в каталог. Все базы данных и конфигурации шифруются, что исключает копирование и изменение настроек; при этом пользователь одним кликом запускает готовое приложение, не вникая в его устройство, — проект удобно встраивается в производственную среду. Расположение функции в TSMaster — на рис. 2-1.

Настройки шифрования проекта (рис. 2-2):
- Парольная защита — при открытии опубликованного проекта потребуется ввести пароль;
- Теневой режим — если включён, любые изменения конфигурации пользователем не сохраняются;
- Параметры запуска — выбор оборудования при запуске: устройства TOSUN с лицензией или оборудование любого другого производителя;
- Привязка версии — разрядность открываемой версии: x86 или x64;
- Отображаемое содержимое — всплывающая подсказка при открытии проекта (например, «открывать версией не ниже xxx» и другие важные замечания).

Чтобы ограничить использование опубликованного проекта — например, задать срок использования, — активируйте функцию ограничений (рис. 2-3):
- проект работает только в заданном диапазоне дат (не раньше начальной и не позже конечной);
- проект можно использовать ограниченное число дней (каждый день использования засчитывается, дни могут идти не подряд);
- проект можно запустить ограниченное число раз (одно подключение приложения = один запуск);
- привязка регистрационной информации к оборудованию компьютера (опционально).
Если включён пункт 4, пользователю потребуется регистрационный код, сгенерированный в модуле «Менеджер авторизации проекта». На практике этот вариант используется чаще всего — например, шифрованные проекты, передаваемые вовне, обычно привязывают регистрационной информацией. Ограничения бывают двух типов: полный запрет на открытие проекта TSMaster либо запуск разрешён, но подключение ограничено.

Далее выбирается шифруемое содержимое: пункты №1 и №2 обязательны — файлы баз данных и конфигурации не смогут быть разобраны извне; остальное — по желанию (рис. 2-4).

Сохранив настройки шифрования, завершите публикацию проекта (рис. 2-5).

Теперь посмотрим, как открывается опубликованный PT7z-проект (в примере — с ограничением по регистрационному коду). Дважды кликните по PT7z-файлу: при первом использовании файл импортируется и распаковывается в (пустой) каталог, при открытии появится запрос пароля (рис. 2-6).

При верном пароле проект открывается и переходит к вводу регистрационного кода; при неверном — закрывается (рис. 2-7).

Для получения регистрационного кода сторона, выпустившая проект, должна выполнить авторизацию. Пользователь открывает отображение аппаратного ID своего компьютера (рис. 2-8), копирует его и передаёт издателю. Издатель открывает модуль «Менеджер авторизации проекта», вставляет аппаратный ID, выбирает настройки ограничений, генерирует регистрационный код и отправляет пользователю (рис. 2-9, 2-10).



После вставки регистрационного кода проект открывается и работает штатно.
3. Публикация приложения
Публикация приложения устроена по тому же принципу, что и зашифрованная публикация; отличие — в видимости модулей.
Публикация приложения генерирует из текущего проекта отдельный файл TSAPP: двойной клик — и опубликованное приложение запускается. Все базы данных и конфигурации шифруются, что защищает их от копирования и изменения; пользователь одним кликом запускает настроенное приложение, не зная деталей его устройства, — удобно для встраивания в производственную среду.
Принцип и порядок действий совпадают с зашифрованной публикацией; единственное отличие — способ скрытия модулей: при публикации приложения можно скрыть все текущие модули целиком либо только некоторые части модулей (рис. 3-1, 3-2).


4. Частые вопросы
На практике при открытии в новой версии TSMaster проекта, опубликованного в старой, страницы могут отображаться пустыми или «разъезжаться».
В: после открытия проекта страница пустая?
О: Обычно причина — отсутствующий или повреждённый файл конфигурации. Решение:
- Скопируйте файлы проекта — убедитесь, что исходный проект сохранён в резервной копии.
- Исправьте файл TSMaster.ini: откройте TSMaster.ini; скопируйте содержимое файла
TSMaster_Current Layout.lytиз папки lyt исходного проекта (рис. 4-1); вставьте его в конец файла TSMaster.ini проблемного проекта (рис. 4-2); сохраните изменённый TSMaster.ini. - Откройте проект заново: закройте и снова откройте TSMaster и проверьте, восстановилась ли страница.


В: после открытия проекта страница «разъехалась»?
О: Попробуйте следующее:
- Распакуйте файлы проекта: если это проект после публикации приложения, заново распакуйте TSAPP-проект и откройте его. TSAPP — это архив; при открытии «напрямую» из-за особенностей механизма (нет прав, файл во временном каталоге) страница может открыться пустой.
- Исправьте файл конфигурации — см. пункт 1 выше (TSMaster.ini).
- Удалите системные переменные: если в проекте есть недостающие системные переменные (редкий случай), удалите поле
userVariableв TSMaster.ini (обычно их два).
Функции публикации приложения и зашифрованной публикации в TSMaster — корпоративное решение для распространения и защиты тестовых проектов: и массовое развёртывание на производстве, и межкорпоративная совместная работа — с безопасностью интеллектуальной собственности, контролируемым использованием и простотой эксплуатации.