Сборка с ключом для дальнейшей публикации в 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. Загрузка и старт 🚀

  1. Перед запуском удалите старые файлы main.py и flet.toml из левой панели файлов Colab (если они там остались), чтобы ничего не перепуталось.
  2. Перетащите мышкой на левую панель ваши три обновленных файла: main.py, новый flet.toml и картинку icon.png.
  3. Нажмите кнопку «Play».

🌟 Важное напутствие:

Обязательно скачайте созданный файл galich.keystore к себе на компьютер из левой панели файлов Google Colab (нажмите три точки напротив него ➡️ «Скачать») и сохраните в надежное место!
Когда через полгода вы захотите выпустить обновление путеводителя в RuStore (версию 1.0.2), вам нужно будет использовать именно этот сохраненный файл galich.keystore. Если вы его потеряете, RuStore заблокирует загрузку обновлений, посчитав их чужим приложением.
Попробуйте запустить этот профессиональный метод сборки.
  • Напишите, когда сборка завершится — появился ли в папке build/apk/ файл Галич_Путеводитель_Подписан.apk?
  • Прошла ли мимо упрямая ошибка оффлайн-заглушки на вашем смартфоне после того, как мы внесли изменения с кэшированием картинок и SSL-защитой?


Last modified: Sunday, 27 September 2026, 12:01 PM