Vai al contenuto

Problemi noti

  • Quando sviluppi, se utilizzi la funzione di live reload di Ionic dalla CLI, sovrascriverà il plugin, quindi non vedrai mai il tuo aggiornamento.
  • Utilizza lo stesso sistema di ionic sotto il cofano, quindi non vedrai i tuoi aggiornamenti.
  • Questo di solito accade quando vengono inviati aggiornamenti di grandi dimensioni (> 20mb), una grande percentuale di utenti non riceverà l’ultima versione. In passato, gli utenti dovevano tenere l’app aperta fino al completamento del download, ora utilizziamo il download in background, ma è ancora limitato a pochi secondi.

Abbiamo visto alcuni problemi con dispositivi in India, e abbiamo fatto provare all’utente diversi server DNS durante una chiamata, e ha funzionato.

Quindi se hai il 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 invii un aggiornamento self-hosted, fai attenzione che non puoi utilizzare un endpoint “HTTP” poiché è contro le politiche di sicurezza delle app Android, se vuoi comunque farlo, segui questa guida:

Problema Unzip: le voci DEFLATED possono avere un descrittore EXT

Se hai compresso il tuo bundle con qualcosa di diverso dalla CLI, il formato del tuo 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 le buone pratiche raccomandate da sonar cloud, nel 90% dei casi funzionerà benissimo, ma con alcuni plugin che causa problemi.

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

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

Aggiungi la chiave del dizionario NSPrivacyAccessedAPICategoryUserDefaults al tuo Manifesto della Privacy (solitamente 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>
<!-- Aggiungi questa voce dict all'array se il file esiste già. -->
<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 per accedere all’API UserDefaults.

Quando utilizzi un server locale per testare gli aggiornamenti, l’app chiederà i permessi di rete, è un comportamento normale, non è il caso quando utilizzi un server remoto.

Quando si effettuano aggiornamenti in modalità manuale, alcuni eventi non sono facili da catturare, ad esempio l’errore di aggiornamento si attiva appena prima che il tuo codice JS si ricarichi, quindi non sarai in grado di catturarlo.

Un’alternativa è elencare i bundle e controllare le statistiche degli errori per sapere se l’aggiornamento fallisce.

Dobbiamo trovare un modo migliore per gestire questo in futuro, ma non è una priorità, poiché la modalità automatica è il modo consigliato per fare aggiornamenti.

Le PR sono benvenute per aiutarci a migliorare questo.

se la tua CLI ha problemi a fare qualsiasi cosa,

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

Segui la guida della documentazione ufficiale: