Files
nonograms/MOBILE_DEPLOY.md
Grzegorz Kucmierz df336eeb8a
All checks were successful
Deploy to Production / deploy (push) Successful in 3s
docs: update deployment guide with signing instructions
2026-02-13 09:09:22 +01:00

5.9 KiB

Publikacja Aplikacji Mobilnej (Android & iOS)

Aplikacja została skonfigurowana z użyciem Capacitor, co pozwala na wydanie jej jako natywnej aplikacji na Androida i iOS.

Wymagania wstępne

  1. Node.js (już masz).
  2. Android Studio (dla Androida).
  3. Xcode (dla iOS - tylko macOS).
  4. Konta deweloperskie:
    • Google Play Console (jednorazowa opłata $25).
    • Apple Developer Program (roczna opłata $99).

Struktura projektu

  • android/ - natywny projekt Androida.
  • ios/ - natywny projekt iOS.
  • dist/ - zbudowana aplikacja webowa (to, co widzi użytkownik).
  • assets/ - ikony i ekrany startowe (użyj npx capacitor-assets generate po zmianie plików tutaj).

Codzienny workflow (aktualizacja kodu)

Za każdym razem, gdy zmienisz kod JS/Vue:

  1. Zbuduj aplikację webową:
    npm run build
    
  2. Zsynchronizuj zmiany z projektami natywnymi:
    npx cap sync
    

Generowanie Certyfikatów (dla Ionic Appflow / CI/CD)

Jeśli używasz Ionic Appflow do budowania aplikacji w chmurze, musisz wygenerować i wgrać odpowiednie certyfikaty podpisywania.

Android (Google Play)

Potrzebujesz pliku Keystore (.jks lub .keystore).

  1. Opcja A (Terminal - jeśli masz Javę/JDK): Uruchom w terminalu:

    keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
    
    • Zostaniesz poproszony o hasło do magazynu kluczy (zapamiętaj je!).
    • Podaj dane (Imię, Organizacja itp.).
    • Na koniec potwierdź (yes).
  2. Opcja B (Android Studio):

    • Otwórz projekt Androida w Android Studio (npx cap open android).
    • Menu: Build -> Generate Signed Bundle / APK.
    • Wybierz Android App Bundle -> Next.
    • Pod polem "Key store path" kliknij Create new....
    • Wypełnij formularz (ścieżka, hasła, alias).
    • Zakończ kreatora.
  3. W Appflow:

    • Wgraj wygenerowany plik .jks.
    • Podaj:
      • Keystore Password: hasło, które ustawiłeś.
      • Key Alias: nazwa aliasu (np. my-key-alias lub to co wpisałeś).
      • Key Password: hasło do klucza (zazwyczaj to samo co do keystore).

iOS (App Store)

Potrzebujesz certyfikatu .p12 oraz profilu .mobileprovision. Wymagany jest dostęp do komputera Mac i konta Apple Developer.

  1. Certyfikat Dystrybucyjny (.p12):

    • Otwórz aplikację Dostęp do pęku kluczy (Keychain Access) na Macu.
    • Menu: Asystent certyfikatów -> Poproś urząd certyfikacji o certyfikat.
    • Wpisz swój email, wybierz "Zapisz na dysku" i kontynuuj -> Zapisz plik .certSigningRequest (CSR).
    • Zaloguj się na developer.apple.com.
    • Idź do Certificates, Identifiers & Profiles -> Certificates.
    • Kliknij +, wybierz iOS Distribution (App Store and Ad Hoc).
    • Wgraj swój plik CSR.
    • Pobierz wygenerowany certyfikat .cer.
    • Kliknij dwukrotnie w pobrany plik .cer, aby dodać go do Pęku kluczy.
    • W Pęku kluczy znajdź ten certyfikat (np. "iPhone Distribution: Twoja Nazwa"), rozwiń go strzałką, aby widzieć "Klucz prywatny".
    • Zaznacz oba (certyfikat i klucz prywatny), kliknij prawym -> Eksportuj 2 rzeczy.
    • Zapisz jako plik .p12 i ustaw hasło eksportu (zapamiętaj je!).
  2. Profil Aprowizacji (.mobileprovision):

    • Na developer.apple.com idź do Profiles.
    • Kliknij +, wybierz App Store (pod Distribution).
    • Wybierz App ID swojej aplikacji (musi pasować do Bundle ID w projekcie).
    • Wybierz certyfikat, który przed chwilą stworzyłeś.
    • Nazwij profil (np. "Nonograms App Store") i pobierz plik .mobileprovision.
  3. W Appflow:

    • Wgraj plik .p12.
    • Wgraj plik .mobileprovision.
    • Podaj hasło do pliku .p12.

Android (Lokalnie)

1. Uruchomienie projektu

Otwórz projekt w Android Studio:

npx cap open android

2. Konfiguracja i Podpisywanie

W Android Studio:

  1. Poczekaj na "Gradle Sync".
  2. Zmień applicationId w build.gradle (Module: app) jeśli chcesz inną niż pl.nonograms.app.
  3. Menu: Build -> Generate Signed Bundle / APK.
  4. Wybierz Android App Bundle.
  5. Stwórz nowy klucz (Keystore) i zapamiętaj hasła (bezpiecznie!).
  6. Wygeneruj plik .aab.

3. Publikacja

  1. Zaloguj się do Google Play Console.
  2. Utwórz nową aplikację.
  3. Uzupełnij informacje (opis, screenshoty, polityka prywatności).
  4. W sekcji "Production" prześlij wygenerowany plik .aab.

iOS (Lokalnie)

1. Uruchomienie projektu

Otwórz projekt w Xcode:

npx cap open ios

2. Konfiguracja

W Xcode:

  1. Kliknij "App" w drzewie plików po lewej.
  2. W zakładce Signing & Capabilities:
    • Wybierz swój "Team" (Twoje konto Apple ID).
    • Upewnij się, że "Bundle Identifier" jest unikalny.
  3. W zakładce General:
    • Ustaw numer wersji (Version) i kompilacji (Build).

3. Publikacja

  1. Wybierz urządzenie docelowe jako "Any iOS Device (arm64)".
  2. Menu: Product -> Archive.
  3. Po zakończeniu otworzy się "Organizer". Kliknij Distribute App.
  4. Wybierz App Store Connect -> Upload.
  5. Po przesłaniu, zaloguj się do App Store Connect, uzupełnij metadane i wyślij do recenzji.

Ważne uwagi

  • Bezpieczny obszar (Notch): Aplikacja ma ustawione viewport-fit=cover, ale upewnij się, że UI nie chowa się pod notchem (w CSS używaj env(safe-area-inset-top)).
  • Wstecz (Android): Capacitor obsługuje przycisk wstecz sprzętowo, ale warto to przetestować.
  • Permissions: Jeśli w przyszłości dodasz pluginy (np. kamerę), musisz dodać uprawnienia w AndroidManifest.xml i Info.plist.