Saltare al contenuto

Problemi noti

  • Quando sviluppi, se utilizzi la funzione di ricarica live di Ionic dal CLI, sovrascriverà il plugin, quindi non vedrai mai le tue aggiornamenti.
  • Utilizza lo stesso sistema di Ionic sotto il cofano, quindi non vedrai mai gli aggiornamenti.
  • Questo accade di solito quando vengono inviati aggiornamenti molto grandi (> 20mb), una grande percentuale di utenti non riceverà la versione più recente.
    In passato, gli utenti dovevano tenere l'app aperta fino a quando il download non era completo, ora utilizziamo il download in background, ma è ancora limitato a pochi secondi.

Abbiamo riscontrato alcuni problemi con i dispositivi in India, e abbiamo fatto chiamare l'utente, gli abbiamo fatto provare diversi server DNS, e funziona.

Se hai questo problema, prova a utilizzare un server DNS diverso come Cloudflare o Google DNS.

Cloudflare: 1.1.1.1 e 1.0.0.1

Google DNS: 8.8.8.8 e 8.8.4.4 o dns.google

Quando si sta eseguendo un aggiornamento self-hosted, si deve tenere presente che non si può utilizzare l'endpoint “HTTP” poiché è contro le politiche di sicurezza degli app Android, se lo si vuole comunque fare, segui questa guida:

Problema di scompattazione: gli elementi DEFLATED possono avere un descriptor EXT

Se hai scompresso il tuo bundle con qualcosa diverso dal CLI, il formato o il tuo file zip potrebbe essere errato, utilizza il comando CLI npx @capgo/cli zip BUNDLE_FOLDER.

Questo è un problema noto di Java:

  • Se hai problemi con usesCleartextTraffic, è perché il plugin segue la buona pratica raccomandata da sonar cloud, in 90% dei casi funziona senza problemi, ma con alcuni plugin causa problemi

Per risolverlo, aggiungi in android/app/src/main/AndroidManifest.xml in il <application> chiave :

tools:replace="android:usesCleartextTraffic"
xmlns:tools="http://schemas.android.com/tools"

Aggiungi la NSPrivacyAccessedAPICategoryUserDefaults chiave del dizionario al tuo Manifesto della Privacy (di solito ios/App/PrivacyInfo.xcprivacy):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<!-- Add this dict entry to the array if the file already exists. -->
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>

Consigliamo di dichiarare CA92.1 come motivo di accesso alla UserDefaults API.

Quando si utilizza un server locale per le prove di testing, l'app chiederà i permessi di rete, è un comportamento normale, non è il caso quando si utilizza un server remoto.

Quando si effettuano aggiornamenti manuali, alcuni eventi non sono facili da catturare, ad esempio l'aggiornamento fallisce proprio prima che il tuo JS code si ricarichi, quindi non potrai catturarlo.

Un'altra alternativa è elencare i bundle e controllare gli stat della errore per sapere se l'aggiornamento fallisce.

Dobbiamo trovare un modo migliore per gestire questo in futuro, ma non è una priorità, poiché il modo automatico è il modo consigliato per effettuare gli aggiornamenti.

I PR sono i benvenuti per aiutarci a migliorare questo.

se il tuo CLI ha problemi a fare qualsiasi cosa,

Controlla se appId e appName sono presenti nel tuo capacitor.config.ts

Segui la guida del documento ufficiale: