В этой статье я расскажу о создании собственного хранилища ключей для приложения на движке UNITY, и его важности.
Что нужно?
1. Уже установленная версия Unity
Что такое хранилище ключей (keystore)?
Изначально в Unity по умолчанию создаётся Development Keystore (хранилище ключей для разработки), с ним невозможно выпустить приложение в магазины, его .apk не подписывается уникальным ключем, и грубо говоря не имеет авторство/владельца, но его можно запускать на прямую через установщик apk в любое физ. устройство где есть такой установщик.
Хранилище нужно чтобы при сборки приложения оно подписывалось одним из ключей хранилища (ключей может быть больше 1-го), и закреплялось за этим хранилищем уже в магазине, и уже после первой публикации в любом из магазинов, обновлять данное приложение в магазине можно только с этим подписанным хранилищем, смена хранилища на другое блокирует обновление приложения. Хранилище нужно хранить в безопасном и надёжном месте, его кража или потеря будет равна потере доступа к уже опубликованному приложению
[ВНИМАНИЕ!] Восстановить хранилище ключей нельзя
Как создать хранилище ключей?
Примечание: Хранилище можно создать на любом открытом проекте, то есть можно открыть даже пустой проект только созданный, создать по инструкции ниже, и передать полученное хранилище по запросу кому нужно, либо использовать в другом проекте где необходимо
В движке открыть вкладку File => Build Settings => Player Settings => Publish Settings => Keystore Manager
Нажать Keystore => Create New => Anywhere, для создания нового хранилища
Далее указать путь и название ключа, я использую название с компании/студии под которую веду работу (Пример: MyCompany.keystore)
Далее заполняются данные сверху-вниз:
- Password - пароль для всего хранилища
- Confirm Password - повторение пароля хранилища
- Alias - наименование нового ключа для хранилища
- Password - пароль для нового ключа хранилища
- Confirm Password - повторение пароля нового ключа хранилища
- Validity - Срок жизни для нового ключа хранилища (По умолчанию - 50 лет, можно изменять на необходимое для вашего случая)
- [НЕОБЯЗАТЕЛЬНО] First and Last Name - Имя и Фамилия владельца нового ключа (Обычно это сотрудник компании)
- [НЕОБЯЗАТЕЛЬНО] Organizational Unit - Должность владельца нового ключа
- [НЕОБЯЗАТЕЛЬНО] Organization - Компания/Организация в которую входит данный владелец нового ключа
- [НЕОБЯЗАТЕЛЬНО] City or Location - Город, где расположен владелец нового ключа
- [НЕОБЯЗАТЕЛЬНО] State or Province - Обычно тут я указываю страну, но прямое значение это штат или провинция
- [НЕОБЯЗАТЕЛЬНО] Country Code - Код страны в два символа (US, KZ, RU, UA)
После всего этого можно добавлять ключ (Add Key)
Далее выйдет вопрос хотим ли мы использовать созданное хранилище и ключ, жмём да
Теперь он сам выбрал созданные нами ключи, и вписал пароли (пароли нужно будет вписывать при каждом открытии Unity, без них при сборке проекта будут ошибка)
При повторном нажатие на Keystore Manager, мы можем добавить в это же хранилище ключей еще ключи, там же есть информация о уже имеющихся там ключей.
Как использовать уже созданное хранилище ключей?
Следует нажать на галочку Custom Keystore (Пользовательское хранилище) и нажав на кнопку Select выбрать путь до вашего хранилища, ввести пароль для всего хранилища, далее выбрать ключ из доступных ключей и ввести пароль от него, если всё было введено правильно, то при сборке проекта ошибок не будет, и сборка готова к публикации.
Теперь ваше приложение подписано для публикации под вашим хранилищем