7.5 KiB
PAPA YU — сборка DMG и обновления
Единые пути и связи
| Назначение | Значение |
|---|---|
| Репозиторий | https://github.com/yrippert-maker/papayu |
| Обновления (endpoint) | https://github.com/yrippert-maker/papayu/releases/latest/download/latest.json |
| Установка приложения (macOS) | /Applications/PAPA YU.app (рекомендуется) |
| Данные приложения | Системная папка приложения (Tauri app_data_dir) — не зависит от $HOME |
| Логотип в проекте | desktop/src-tauri/icons/icon_source.png, desktop/ui/public/logo-papa-yu.png |
| Путь проекта при сборке | Задаётся переменной PAPAYU_PROJECT_ROOT; по умолчанию $HOME/PAPA-YU |
Конфиг: desktop/src-tauri/tauri.conf.json (пути сборки, plugins.updater.endpoints). Чтобы сборка работала из другого каталога, задайте export PAPAYU_PROJECT_ROOT=/путь/к/PAPA-YU перед cargo tauri dev или cargo tauri build.
Сборка DMG (один запускающий файл)
Из корня проекта (или из desktop/src-tauri):
cd ~/PAPA-YU/desktop/src-tauri
cargo tauri build
Результат на macOS:
- .app:
desktop/src-tauri/target/release/bundle/macos/PAPA YU.app - .dmg:
desktop/src-tauri/target/release/bundle/dmg/(если targets включают dmg)
Только DMG:
cargo tauri build --bundles dmg
Пользователь открывает DMG → перетаскивает «PAPA YU» в «Программы» → запускает приложение. Дальнейшие изменения — через кнопку обновления в приложении.
Кнопка обновления (новый логотип)
В интерфейсе рядом с логотипом PAPA YU есть кнопка с иконкой логотипа и стрелкой загрузки. По нажатию:
- Проверяется наличие новой версии по GitHub Releases.
- При наличии — скачивание и установка, затем перезапуск приложения.
Единая точка входа для обновлений — эта кнопка; пути и URL заданы в конфиге.
Подписание обновлений (обязательно для updater)
Ключи (публичный и приватный) вы получаете из команды генерации, указанной ниже. Публичный ключ вставляется в конфиг; приватный — хранится локально и в GitHub Secrets для подписи релизов.
Как сгенерировать ключи
Один блок команд (выполните в терминале — команда запросит пароль для защиты ключа; можно нажать Enter для пустого пароля):
mkdir -p ~/.tauri
cd ~/PAPA-YU/desktop/src-tauri
cargo tauri signer generate -w ~/.tauri/papayu.key
В проекте нет Tauri CLI в npm, поэтому используется cargo tauri signer generate из каталога desktop/src-tauri (нужен установленный Rust и Cargo). При запросе пароля введите свой или нажмите Enter для пустого пароля.
После выполнения в консоль будет выведен публичный ключ — скопируйте его целиком для шага «Вставить публичный ключ» ниже. Приватный ключ сохранится в ~/.tauri/papayu.key.
По шагам:
-
Создайте каталог для ключа (опционально):
mkdir -p ~/.tauri -
Перейдите в каталог Tauri и запустите генерацию ключей (обязательно в интерактивном терминале — команда запросит пароль):
cd ~/PAPA-YU/desktop/src-tauri cargo tauri signer generate -w ~/.tauri/papayu.keyФлаг
-w(или--write-keys) задаёт файл, куда будет записан приватный ключ. Путь~/.tauri/papayu.key— пример; можно использовать свой (например./papayu.keyв репозитории, но тогда не коммитьте этот файл). -
Результат команды:
- В консоль выведется публичный ключ — длинная строка, обычно начинается с
dW50cnVzdGVk...или похожего (base64). - Приватный ключ сохраняется в файл, указанный в
-w(например~/.tauri/papayu.key). Этот файл никому не передавайте и не добавляйте в репозиторий.
- В консоль выведется публичный ключ — длинная строка, обычно начинается с
-
Куда подставить ключи:
- Публичный ключ — в
desktop/src-tauri/tauri.conf.jsonв блокеplugins.updater.pubkey(замените заглушкуREPLACE_WITH_PUBLIC_KEY_AFTER_tauri_signer_generateна выведенную строку целиком). - Приватный ключ — для локальной подписи передаётся через переменную окружения
TAURI_SIGNING_PRIVATE_KEYили через файл-w. Для GitHub Actions добавьте содержимое файла~/.tauri/papayu.keyв секрет репозитория с именемTAURI_SIGNING_PRIVATE_KEY.
- Публичный ключ — в
Проверка: после подстановки публичного ключа в конфиг пересоберите приложение и опубликуйте релиз с подписью; кнопка «Проверить обновления» в приложении должна перестать выдавать ошибку подписи.
Обновления должны быть подписаны. Один раз:
-
Сгенерировать ключи (см. раздел «Как сгенерировать ключи» выше).
-
Вставить публичный ключ в
desktop/src-tauri/tauri.conf.json:"plugins": { "updater": { "endpoints": ["https://github.com/yrippert-maker/papayu/releases/latest/download/latest.json"], "pubkey": "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" } }Сейчас в конфиге стоит заглушка
REPLACE_WITH_PUBLIC_KEY_AFTER_tauri_signer_generate— замените на ключ из шага 1. -
При сборке релиза подписывать артефакты приватным ключом (переменная
TAURI_SIGNING_PRIVATE_KEYили-w ~/.tauri/papayu.key). Для GitHub Releases можно использовать tauri-action с опцией подписания и публикацииlatest.json.
После этого кнопка обновления будет работать с единым endpoint и путями, заданными выше.