Мастер-лицензия – это оффлайн-лицензия, с которой можно использовать мобильные SDK без ограничений по bundle_id, в отличие от обычных лицензий. Для получения мастер-лицензии нужно создать пару ключей, как описано ниже. Отправьте нам публичный ключ по электронной почте, и вскоре после этого мы отправим вам мастер-лицензию.
Вашему приложению нужно будет подписать свой bundle_id приватным ключом. Мобильные SDK проверяют подпись с помощью публичного ключа из мастер-лицензии. Действие таких лицензий ограничено по времени.
Генерация ключей
В этом разделе описано, как создавать приватный и публичный ключи.
Создание приватного ключа
Чтобы создать приватный ключ, последовательно запустите следующие команды:
Вы получите два файла:
privateKey.der – приватный ключ .der;
privateKey.txt – privateKey.der в кодировке base64. Содержимое этого файла используется в качестве подписи bundle_id хостового приложения.
Спецификация команд OpenSSL:
Создание публичного ключа
Чтобы создать публичный ключ, запустите команду:
Вы получите публичный ключ publicKey.pub. Отправьте его нам по электронной почте. В ответ мы пришлем вам лицензию.
Перед инициализацией SDK создайте закодированную base64 подпись для bundle_id хостового приложения с помощью приватного ключа.
Пример создания подписи:
Пример подписи для com.ozforensics.liveness.demo
Внимание: данная подпись не соответствует паре ключей, приведенной выше.
Передайте подпись как параметр masterLicenseSignature во время инициализации SDK.
Если подпись невалидна, инициализация продолжится по стандартной схеме: проверка включенных в лицензию bundle_id.
Получение лицензии
Сгенерируйте тестовую лицензию самостоятельно здесь (внимание, страница на английском языке) или свяжитесь с нами по email для выпуска продуктивной лицензии. Для подготовки лицензии потребуется applicationId (bundle id).
Для добавления файла лицензии в SDK вызовите метод OzLivenessSDK.init с одним из параметров LicenseSources:
LicenseSource.LicenseAssetId должен содержать путь к файлу forensics.license, расположенному в проекте в папке res/raw.
LicenseSource.LicenseFilePath должен содержать пусть к файлу на устройстве (вне проекта).
Если при обработке лицензии возникнут ошибки, вы получите сообщение с описанием этих ошибок. Если ошибок нет, система выведет данные о лицензии. Вы также можете запросить эти данные с помощью метода getLicensePayload.
Отсутствует файл лицензии. Проверьте наименование и путь к файлу.
License error. Cannot parse license from (your_URI), invalid format
Файл лицензии поврежден. Пожалуйста, отправьте его нам по электронной почте.
License error. Bundle company.application.id is not in the list allowed by license (bundle.id1, bundle.id2)
Идентификатор приложения отсутствует в списке разрешенных для данной лицензии идентификаторов. Проверьте написание, если все корректно, нужна новая лицензия.
License error. Current date yyyy-mm-dd hh:mm:ss is later than license expiration date yyyy-mm-dd hh:mm:ss
Срок действия лицензии истек. Пожалуйста, свяжитесь с нами.
License is not initialized. Call 'OzLivenessSDK.init before using SDK
Лицензия не устанавливалась. Вызовите метод OzLivenessSDK.init, как показано выше в этой статье
OzLivenessSDK.init(context,listOf( LicenseSource.LicenseAssetId(R.raw.your_license_name), LicenseSource.LicenseFilePath("абсолютный путь к файлу лицензии") ),object : StatusListener<LicensePayload> {overridefunonSuccess(result: LicensePayload) { /*проверка информации о лицензии*/ }overridefunonError(error: OzException) { /*обработка исключения */ } } )
OzLivenessSDK.INSTANCE.getConfig().setBaseURL(BASE_URL);OzLivenessSDK.INSTANCE.init(context,Arrays.asList(new LicenseSource.LicenseAssetId(R.raw.forensics),new LicenseSource.LicenseFilePath("aбсолютный путь к файлу лицензии")),newStatusListener<LicensePayload>(){@Overridepublicvoid onStatusChanged(@NullableStrings){}@Overridepublicvoid onSuccess(LicensePayloadlicensePayload){/*проверка информации о лицензии*/@Overridepublicvoid onError(@NonNullOzExceptione){/*});