Дистрибуция Android
Fenfa раздаёт Android-приложения в виде прямых скачиваний APK. Для Android не требуется специальная настройка — загрузите APK, и страница дистрибуции сформируется автоматически.
Поток скачивания APK
Когда пользователь нажимает кнопку скачивания на Android-устройстве:
- Браузер запрашивает APK у Fenfa
- Fenfa стримит файл из хранилища
- Браузер скачивает APK
- Пользователь открывает APK для установки
Установка из неизвестных источников
Android блокирует установку APK из источников, отличных от Google Play, по умолчанию. Пользователи должны разрешить установку из неизвестных источников в настройках безопасности. Fenfa автоматически показывает эту инструкцию на странице дистрибуции.
Умное извлечение метаданных
При загрузке APK Fenfa автоматически извлекает:
- Версию из
AndroidManifest.xml(атрибутversionName) - Номер билда из
AndroidManifest.xml(атрибутversionCode) - Имя пакета (applicationId)
Поэтому при загрузке APK поля version и build указывать необязательно:
bash
curl -X POST https://dist.example.com/upload/api/variants/{variant_id}/releases \
-H "X-Auth-Token: YOUR_UPLOAD_TOKEN" \
-F "[email protected]" \
-F "changelog=Bug fixes"
# version и build извлекаются автоматическиЗагрузка APK через CI/CD
GitHub Actions
yaml
name: Upload to Fenfa
on:
push:
tags:
- 'v*'
jobs:
upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build APK
run: ./gradlew assembleRelease
- name: Upload to Fenfa
run: |
curl -X POST ${{ secrets.FENFA_URL }}/upload/api/variants/${{ secrets.ANDROID_VARIANT_ID }}/releases \
-H "X-Auth-Token: ${{ secrets.FENFA_UPLOAD_TOKEN }}" \
-F "file=@app/build/outputs/apk/release/app-release.apk" \
-F "changelog=Release ${{ github.ref_name }}"Проверка загруженного релиза
После загрузки убедитесь, что метаданные извлечены корректно:
bash
curl https://dist.example.com/admin/api/variants/{variant_id}/releases \
-H "X-Auth-Token: YOUR_ADMIN_TOKEN"В ответе проверьте поля version и build.
Следующие шаги
- Дистрибуция iOS — OTA установка для iPhone/iPad
- Дистрибуция Desktop — macOS, Windows, Linux
- Upload API — полная документация API загрузки