Files
itstransport-android-driver/README.md
T

3.1 KiB

TPP Kierowca

Natywna aplikacja Android Jetpack Compose dla kierowcow TPP.

Funkcje

  • Logowanie numerem telefonu i kodem OTP.
  • Lista dzisiejszych kursow kierowcy.
  • Szczegoly kursu: relacja, kontrakt, status, pojazd i notatki.
  • Dodawanie zdjec ladunku z aparatu lub galerii.
  • Podglad zdjec ladunku w aplikacji.

Build

./gradlew :app:assembleDebug

Testy

./gradlew :app:testDebugUnitTest

Release Gitea i Google Play

Przed wydaniem zapisz wszystkie zmiany źródłowe w commicie. Następnie uruchom:

./scripts/release-android.sh

Skrypt automatycznie zwiększa versionCode i ostatni człon versionName, uruchamia testy, buduje podpisany APK oraz AAB, a po poprawnym buildzie pyta, czy wysłać aktualizację do Google Play. Po odpowiedzi „tak” publikuje AAB w skonfigurowanym teście zamkniętym i wysyła zmiany do weryfikacji. Następnie tworzy commit wersji, tag, push i Gitea Release. Artefakty zostają również zapisane lokalnie w release-artifacts/<tag>/.

Do publikacji Google Play konto serwisowe musi mieć dla aplikacji pl.firmatpp.kierowca uprawnienia „Wyświetlanie informacji o aplikacji (tylko do odczytu)” oraz „Publikowanie aplikacji na ścieżkach testowych”. Pobrany klucz JSON umieść bezpośrednio w folderze scripts, na przykład:

scripts/google-play-service-account.json

Skrypt sam znajduje jedyny plik scripts/*.json, sprawdza, czy jest prawidłowym kluczem konta serwisowego, i używa go do autoryzacji. Pliki scripts/*.json są ignorowane przez Git i nie mogą zostać przypadkowo dodane do repozytorium. Jeśli w folderze znajduje się więcej niż jeden prawidłowy klucz, skrypt przerwie działanie i poprosi o pozostawienie jednego.

GOOGLE_PLAY_TRACK musi być identyfikatorem istniejącego testu zamkniętego. Domyślna wartość to alpha. Opcjonalnie można ustawić GOOGLE_PLAY_PACKAGE_NAME i GOOGLE_PLAY_RELEASE_LANGUAGE (domyślnie pl-PL). Zmienna GOOGLE_PLAY_SERVICE_ACCOUNT_CREDENTIALS pozostaje opcjonalnym sposobem wskazania klucza spoza folderu scripts. Skrypt nie zapisuje tokenu ani klucza w repozytorium; prywatny klucz tymczasowy jest usuwany po zakończeniu.

Przed zatwierdzeniem skrypt waliduje edycję Google Play. Commit edycji jawnie wysyła zmiany do weryfikacji. Jeżeli inne zmiany są już sprawdzane, skrypt nie anuluje ich — kończy się błędem i można go wznowić po zakończeniu poprzedniej weryfikacji. Jeżeli na koncie jest włączone publikowanie zarządzane, po akceptacji Google nadal trzeba wybrać „Opublikuj zmiany” w Play Console; bez publikowania zarządzanego zaakceptowane wydanie zostanie udostępnione testerom automatycznie.

Awaryjne wydanie wyłącznie do Gitea, bez Google Play:

./scripts/release-android.sh --skip-google-play

W środowisku bez interaktywnego terminala decyzję trzeba podać jawnie:

./scripts/release-android.sh --publish-google-play

Do autoryzacji Gitea używany jest GITEA_TOKEN albo dane zapisane w Git credential helper. Jeśli publikacja została przerwana już po utworzeniu commita wersji, można ją wznowić:

./scripts/release-android.sh --reuse-current