Сборка с ключом для дальнейшей публикации в Rustore
Это самый правильный подход! Работа с собственным цифровым ключом (Keystore) — это важная часть профессиональной мобильной разработки. Собственный ключ гарантирует, что никто другой не сможет выпустить обновление для вашего приложения, а ваш путеводитель будет защищен по стандартам безопасности Android.
Мы создадим ваш личный секретный ключ прямо внутри Google Colab с помощью стандартной утилиты
keytool, а сборщик Flet автоматически подпишет им готовый .apk файл во время компиляции.Вот пошаговый план, как это сделать интересно и красиво.
Шаг 1. Генерируем ваш личный секретный ключ в Google Colab
Для этого нам не нужно ничего устанавливать. Добавьте в ячейку вашего Google Colab на самую первую строчку (перед командой сборщика) вот такую команду:
!keytool -genkey -v -keystore galich.keystore -alias galich_alias -keyalg RSA -keysize 2048 -validity 10000 -storepass "Galich2026Secret!" -keypass "Galich2026Secret!" -dname "CN=itvekonru, O=Guide, L=Galich, C=RU"
🗝️ Что означает эта команда:
galich.keystore— имя секретного файла-хранилища, который создастся в облаке.galich_alias— уникальный «псевдоним» вашего ключа внутри хранилища.Galich2026Secret!— ваш секретный пароль для ключа (я заложил его в команду, вы можете оставить этот или вписать свой латиницей).-validity 10000— ключ будет официально действовать 10 000 дней (около 27 лет). RuStore требует, чтобы ключ был валиден как минимум до 2050 года.
Шаг 2. Привязываем ключ в файле flet.toml
Чтобы сборщик Flet узнал, что приложение нужно подписать именно этим созданным ключом, нам нужно добавить настройки подписи в блок
[android] вашего конфигурационного файла flet.toml на компьютере.Откройте
flet.toml в PyCharm и приведите его к такому итоговому виду:[app]
name = "Галич Путеводитель"
description = "Интерактивный купеческий путеводитель по древнему Галичу"
id = "ru.infostarting.galich.guide"
author = "itvekonru"
version = "1.0.0"
build_number = 1
icon = "icon.png"
[android]
permissions = ["android.permission.INTERNET"]
# --- НАСТРОЙКИ ЦИФРОВОЙ ПОДПИСИ ДЛЯ RUSTORE ---
keystore_file = "galich.keystore"
keystore_password = "Galich2026Secret!"
key_alias = "galich_alias"
key_password = "Galich2026Secret!"
Сохраните изменения в файле (
Ctrl + S).Шаг 3. Итоговый скрипт для Google Colab
Теперь очистите текущую ячейку в Google Colab и вставьте этот полный, красивый автоматический скрипт «всё в одном». Он создаст ключ, подпишет код, скомпилирует его и переименует файл:
# 1. Генерируем секретный цифровой ключ со сроком действия 27 лет
!keytool -genkey -v -keystore galich.keystore -alias galich_alias -keyalg RSA -keysize 2048 -validity 10000 -storepass "Galich2026Secret!" -keypass "Galich2026Secret!" -dname "CN=itvekonru, O=Guide, L=Galich, C=RU"
# 2. Снимаем блокировку безопасности Git для Flutter
!git config --global --add safe.directory /root/flutter/3.44.8
# 3. Полностью очищаем старый кэш прошлых сборок
!flet clean
# 4. Запускаем компиляцию приложения с автоматической подписью ключом galich.keystore
!flet build apk
# 5. Переименовываем подписанный файл в красивое имя
import os
if os.path.exists("build/apk/app-release.apk"):
os.rename("build/apk/app-release.apk", "build/apk/Галич_Путеводитель_Подписан.apk")
print("Ура! Подписанный файл Галич_Путеводитель_Подписан.apk готов для RuStore!")
else:
print("Ошибка сборки. Проверьте логи выше.")
Шаг 4. Загрузка и старт 🚀
- Перед запуском удалите старые файлы
main.pyиflet.tomlиз левой панели файлов Colab (если они там остались), чтобы ничего не перепуталось. - Перетащите мышкой на левую панель ваши три обновленных файла:
main.py, новыйflet.tomlи картинкуicon.png. - Нажмите кнопку «Play».
🌟 Важное напутствие:
Обязательно скачайте созданный файл
galich.keystore к себе на компьютер из левой панели файлов Google Colab (нажмите три точки напротив него ➡️ «Скачать») и сохраните в надежное место!Когда через полгода вы захотите выпустить обновление путеводителя в RuStore (версию
1.0.2), вам нужно будет использовать именно этот сохраненный файл galich.keystore. Если вы его потеряете, RuStore заблокирует загрузку обновлений, посчитав их чужим приложением.Попробуйте запустить этот профессиональный метод сборки.
- Напишите, когда сборка завершится — появился ли в папке
build/apk/файлГалич_Путеводитель_Подписан.apk? - Прошла ли мимо упрямая ошибка оффлайн-заглушки на вашем смартфоне после того, как мы внесли изменения с кэшированием картинок и SSL-защитой?
Последнее изменение: Воскресенье, 27 сентября 2026, 12:01