LogoPixi’VN

Dispositivi desktop e mobili

Scopri come distribuire il tuo gioco su piattaforme desktop e mobili utilizzando Tauri e GitHub Actions.

Esistono diversi modi per distribuire il tuo gioco su piattaforme desktop e mobili. Le scelte più comuni sono Tauri, Ionic, Electron, NW.js e React Native per Windows + Mac.

Se non si desidera gestire un progetto nativo fortemente personalizzato, si può prendere in considerazione l'utilizzo dei template multi-dispositivo. Questi modelli includono Tauri, così puoi sviluppare un'app web e anche creare app desktop e mobili partendo dalla stessa base di codice.

tauri-h2

Tauri

Tauri è un framework per la creazione di applicazioni desktop e mobili con tecnologie web. Sfrutta Rust per produrre binari nativi sicuri, leggeri e veloci, mentre una WebView esegue il rendering di HTML, CSS e JavaScript.

Per saperne di più, visita il sito web di Tauri.

Distribuisci il tuo gioco con Tauri

Creare manualmente le release per ogni piattaforma è difficile: richiede l'installazione di molti strumenti e per creare app iOS è necessario un Mac. Per questi motivi, la generazione manuale delle versioni è generalmente sconsigliata.

Tauri supporta l'utilizzo di GitHub Actions per automatizzare le build di rilascio. GitHub Actions esegue i processi su macchine virtuali (runner) configurate con file di flusso di lavoro YAML. In un flusso di lavoro si definiscono gli eventi che attivano la pipeline (ad esempio, l'invio di un tag) e l'elenco dei comandi che il runner deve eseguire.

Mobile

Attualmente, le build per dispositivi mobili tramite GitHub Actions sono sperimentali.

The multi-device templates include the file /.github/workflows/tauri.yml. Tale flusso di lavoro crea artefatti di rilascio (pacchetti di installazione) per più sistemi operativi.

.github/workflows/tauri.yml
# https://tauri.app/distribute/pipelines/github/
name: 'publish'

on:
  push:
    tags:
      - 'v*'

jobs:
  publish-tauri:
    permissions:
      contents: write
    strategy:
      fail-fast: false
      matrix:
        include:
          - platform: 'macos-latest' # for Arm based macs (M1 and above).
            args: '--target aarch64-apple-darwin'
          - platform: 'macos-latest' # for Intel based macs.
            args: '--target x86_64-apple-darwin'
          - platform: 'ubuntu-22.04'
            args: ''
          - platform: 'windows-latest'
            args: ''
          - platform: 'macos-latest' # iOS
            args: '--target x86_64-apple-darwin'
            mobile: "ios"
          - platform: 'ubuntu-22.04' # Android
            args: ''
            mobile: "android"

    runs-on: ${{ matrix.platform }}
    steps:
      - uses: actions/checkout@v4

      - name: install dependencies (ubuntu only)
        if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above.
        run: |
          sudo apt-get update
          sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

      - name: setup node
        uses: actions/setup-node@v6
        with:
          node-version: lts/*

      - name: Update Java (only for Android builds)
        if: matrix.mobile == 'android'
        uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: '21'

      - name: setup Android SDK (only for Android builds)
        if: matrix.mobile == 'android'
        uses: android-actions/setup-android@v3

      - name: install Rust stable
        uses: dtolnay/rust-toolchain@stable # Set this to dtolnay/rust-toolchain@nightly
        with:
          # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
          targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}

      - name: install frontend dependencies
        # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too.
        run: yarn install # change this to npm or pnpm depending on which one you use.

      - name: Upload Tauri icons
        run: npm run tauri icon public/pwa-512x512.png

      - name: Rust cache
        uses: swatinem/rust-cache@v2
        with:
          workspaces: './src-tauri -> target'

      - uses: tauri-apps/tauri-action@v0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
          releaseName: 'App v__VERSION__'
          releaseBody: 'See the assets to download this version and install.'
          releaseDraft: true
          prerelease: false
          args: ${{ matrix.args }}
          mobile: ${{ matrix.mobile || null }}

Per attivare questo flusso di lavoro è necessario un repository GitHub per il progetto e un tag Git che inizi con v. Ad esempio:

git tag v1.0.0
git push origin v1.0.0

È possibile seguire l'esecuzione del flusso di lavoro nella scheda Azioni del repository.

Actions section

Al termine di un'esecuzione corretta verrà creata una versione GitHub. Per saperne di più sulle versioni di GitHub leggere qui.