Wydania APK#
Ta strona opisuje, skąd pobrać aplikację, jak powstaje nowe wydanie i dlaczego instaluje się „na wierzch” poprzedniego, bez utraty danych.
Skąd pobrać aplikację#
| Kanał | Gdzie | Kiedy używać |
|---|---|---|
| Aktualizacja w aplikacji | Ustawienia → Aktualizuj | Normalna droga: aplikacja sama sprawdza nowszą wersję i ją instaluje |
| Bezpośredni plik najnowszego wydania | https://fyndi.app/downloads/latest.apk | Gdy instalujesz na nowym telefonie albo nie chcesz czekać na sprawdzenie w aplikacji |
| Plik konkretnej wersji | archiwum wydań w tej samej domenie | Gdy potrzebujesz cofnąć się do starszej wersji lub porównać zachowanie |
| Opis wydania w panelu | Panel staff → Wydania | Dla staffu: co jest w archiwum i co zobaczy telefon przy aktualizacji |
Kanał dla użytkownika to jedno miejsce: katalog wydań pod domeną fyndi.app. Aplikacja czyta z niego manifest wydania, porównuje numer wersji i pobiera nowszy plik. Wersję i rozmiar aktualnego wydania widać też na żywo w stopce tej dokumentacji — są pobierane z serwera, więc po nowym wydaniu nie ma czego poprawiać w tekście.
Szczegóły instalacji i wymagania telefonu: Instalacja oraz Aktualizacje aplikacji. Instalacja ręczna z pliku: instalacja ręczna.
Jak powstaje wydanie#
Wydania budujemy i publikujemy na własnym serwerze, jednym poleceniem, bez pośrednictwa zewnętrznych usług budujących. Zewnętrzne repozytorium jest repozytorium, miejscem na znaczniki wersji i kontrolę kodu — nie kanałem publikacji.
- Zmiana trafia do głównej gałęzi. Numer wersji rośnie w konfiguracji Androida: liczba całkowita o jeden większa od poprzedniej oraz nazwa wersji czytelna dla człowieka.
- Bramki przed wypchnięciem — szybki przebieg kontroli musi być zielony; inaczej wypchnięcie jest wstrzymane (Jakość i kontrole).
- Budowa i publikacja u nas — skrypt wydania kompiluje wariant wydania, sprawdza własne warunki (podpis nie może być kluczem testowym, w aplikacji muszą być wbudowane wymagane klucze usług), podpisuje plik kluczem wydania i publikuje go w katalogu wydań, przepisując przy tym manifest i wskaźnik najnowszego wydania.
- Znacznik wersji w repozytorium jest tylko znacznikiem w historii — nie uruchamia żadnego procesu publikacji. To świadoma decyzja opisana w decyzji architektonicznej o wydaniach na własnym serwerze.
- Telefon widzi nową wersję przy następnym sprawdzeniu aktualizacji w aplikacji.
Przed budową emulator musi być wygaszony — serwer, na którym stoi produkcja, dzieli pamięć z buildem, a proces budujący nie zostawia po sobie działającego w tle demona.
Podpis i klucz wydania#
Aplikację podpisujemy kluczem wydania trzymanym tylko na serwerze — nigdy w repozytorium i nigdy w sekretach zewnętrznej usługi. Hasła do klucza czytane są z pliku o ograniczonym dostępie i nie są nigdzie wypisywane.
| Sprawa | Jak jest |
|---|---|
| Nazwa podmiotu w kluczu | CN=Fyndi release |
| Od kiedy ten klucz | Wydania od 0.113.8; wcześniejsze wersje były podpisane kluczem o innej nazwie |
| Dlaczego to ważne | Ten sam podpis między wersjami sprawia, że nowa wersja instaluje się na wierzch starej — bez odinstalowywania i utraty postępów |
| Wyjątek | Przy pierwszej instalacji po zmianie klucza system wymaga jednorazowego odinstalowania starszej aplikacji: Android nie nadpisze aplikacji innym podpisem |
| Kopia klucza | Trzymana także poza serwerem, żeby utrata jednej kopii nie zablokowała możliwości wydawania nowych wersji |
Skrypt wydania wypisuje na końcu odcisk użytego klucza i sumę kontrolną pliku — to dwie liczby, którymi można sprawdzić, że opublikowany plik jest tym, który został zbudowany.
Numeracja wersji#
| Element | Znaczenie |
|---|---|
| versionCode (liczba) | Rośnie o 1 przy każdym wydaniu; po niej telefon rozstrzyga, że widzi nowszą wersję |
| versionName (nazwa) | Wersja czytelna dla człowieka; tę wartość pokazuje ekran Ustawień i stopka tej dokumentacji |
Tag vX.Y.Z | Znacznik w repozytorium dla historii kodu — nie uruchamia publikacji |
| Wersja API | Numerowana osobno od aplikacji; widać ją w stopce dokumentacji i w panelu |
Drobne poprawki zbieramy w jedno wydanie: jedno nowe wydanie to komplet zmian z danego dnia, a nie osobne wydanie po każdej poprawce. Historia zmian napisana językiem użytkownika jest na stronie Historia zmian, a pełny zapis techniczny zostaje w repozytorium.
Opis zgodny z aplikacją 0.120.1 (zaktualizowano 2026-09-26).