86 lines
3.1 KiB
Markdown
86 lines
3.1 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
./gradlew :app:assembleDebug
|
|
```
|
|
|
|
## Testy
|
|
|
|
```bash
|
|
./gradlew :app:testDebugUnitTest
|
|
```
|
|
|
|
## Release Gitea i Google Play
|
|
|
|
Przed wydaniem zapisz wszystkie zmiany źródłowe w commicie. Następnie uruchom:
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```text
|
|
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:
|
|
|
|
```bash
|
|
./scripts/release-android.sh --skip-google-play
|
|
```
|
|
|
|
W środowisku bez interaktywnego terminala decyzję trzeba podać jawnie:
|
|
|
|
```bash
|
|
./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ć:
|
|
|
|
```bash
|
|
./scripts/release-android.sh --reuse-current
|
|
```
|