Отдельно защитите подпись
Храните сертификаты вместе с проектом
Инструменты сборки Flutter, React Native и Unity различаются, но принципы работы с закрытыми ключами и сертификатами одинаковы.
Импортируйте только нужное
Добавляйте только сертификат подписи и профиль подготовки, необходимые для текущего проекта. Храните сертификат и связанный с ним закрытый ключ в Связке ключей macOS. Не оставляйте файлы экспорта с закрытым ключом надолго в папке загрузок.
Защитите экспортируемую резервную копию подписи надёжным паролем и храните пароль отдельно от файла. Используйте материалы для подписи только после получения разрешения клиента.
Ограничьте права сборки
Создайте отдельные учётные данные для автоматической сборки и ограничьте их нужными проектами и действиями. Не выдавайте задаче постоянной сборки полные права команды ради одного успешного Archive.
Не выводите значения переменных окружения в логи. На скриншотах для диагностики скрывайте токены, чувствительные части адресов подключения и пароли сертификатов.
Удалите временные данные доступа
Сначала убедитесь, что резервная копия подписи пригодна к использованию. Затем удалите из Связки ключей ненужные сертификаты и связанные закрытые ключи, а также временные профили, копии экспорта и секреты из скриптов сборки.
Проверьте историю shell, логи, временные каталоги и корзину. Отозовите у издателя или замените токены, которые могли утечь или использовались за пределами разрешённого срока.