Почему это вам действительно нужно
Продажа настольного приложения без какой-либо проверки лицензии означает, что любой, кто получит копию установщика, сможет использовать его вечно, не платя во второй раз. Проверка лицензионного ключа не обязана быть невзламываемой — она просто должна поднять планку достаточно, чтобы случайное распространение перестало быть путём наименьшего сопротивления, при этом предоставляя платящим клиентам плавную активацию. Это та реальная планка, которую нужно преодолеть большинству инди-разработчиков: не военный DRM, а просто реальная система, где ключ что-то значит — привязан к устройству, проверяем, может быть отозван — вместо строки, которую никто не проверяет.
Почему самостоятельная разработка превращается в настоящий проект
Соблазн — быстро накидать проверку: жёстко закодированный список действительных ключей или простую хэш-функцию, и выпустить. Этого хватает до первой настоящей продажи. Настоящее лицензирование требует базы данных для отслеживания того, какие ключи существуют и на каких устройствах они активированы, API, которое ваше приложение может вызвать откуда угодно, чтобы ключи проверялись в реальном времени, а не просто офлайн по формуле, способа отозвать ключ, когда кто-то делает чарджбэк или обманывает вас, и поддержки пробных версий, чтобы люди могли попробовать перед покупкой. Ничто из этого не может существовать только внутри самого приложения — решительный пользователь может просто пропатчить офлайн-проверку. Если так всё перечислить, «просто добавить проверку лицензии» превращается в небольшой бэкенд-сервис, который теперь нужно строить, хостить и вечно поддерживать — ради функции, которая не является вашим настоящим продуктом.
Альтернатива: небольшой хостинговый API вместо бэкенд-проекта
Именно это и делает SublimeKeys — это и есть бэкенд лицензирования, так что вам не нужно строить его самому. Вы получаете REST API с вызовами, которые нужны вашему приложению (activate, verify, deactivate, плюс два для пробных версий), и панель управления для создания продуктов и выдачи ключей вручную или автоматически при каждой продаже. Есть бесплатный тариф (1 продукт, 25 ключей), чтобы протестировать весь процесс, прежде чем на что-то решиться, и никакой инфраструктуры, которую нужно эксплуатировать вам — сервер лицензий, база данных, аптайм — всё это теперь чья-то чужая проблема, а не ваша.
Как это подключить — 4 шага
Что вы на самом деле получаете
Менее чем за час у вас появляются ключи, привязанные к конкретному устройству (а не просто строка, которой может поделиться кто угодно), способ немедленно отозвать доступ при необходимости — чарджбэки, мошенничество, возвраты — опциональные 7-дневные пробные версии, которые нельзя сбросить переустановкой, и автоматическая отправка ключей по email при каждой продаже, если вы этого хотите. Ничто из этого не потребовало написания схемы базы данных, хостинга чего-либо или размышлений об аптайме — эта часть уже решена.
Для кого это на самом деле
Приложения на Electron
Любое настольное приложение на Electron, которое вы продаёте один раз и хотите защитить без собственного сервера лицензий.
Настольные инструменты на Python
Утилиты, упакованные PyInstaller, внутренние инструменты, которые вы теперь продаёте, CLI-продукты с GUI.
Приложения на .NET / WinForms
Классический софт для Windows, появившийся раньше современных вариантов лицензирования — добавьте настоящую активацию без переписывания.
Инди-инструменты и плагины
Небольшие платные утилиты, плагины и дополнения, для которых строить бэкенд лицензирования не стоит вашего времени.
Переход с Gumroad или Keygen
Массово импортируйте существующих клиентов и выдайте новые ключи, не теряя установленную базу пользователей.
About
Patrick Chen — инди-разработчик, стоящий за Sublimearts.io. Создал SublimeKeys после того, как написал точно такой же код проверки лицензии для ReelNox Studio и понял, что каждый другой инди-разработчик, продающий настольный софт, решает ту же самую проблему с нуля.
Did you find this helpful?