Vai al contenuto

Problemi noti

Ricarica live di Ionic

  • Quando sviluppi, se utilizzi la funzione di ricarica live di Ionic dalla CLI, sovrascriverà il plugin, quindi non vedrai mai i tuoi aggiornamenti

Ricarica live di Quasar

  • Utilizza lo stesso sistema di Ionic sotto il cofano, quindi non vedrai i tuoi aggiornamenti

Errori negli 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 mantenere l’app aperta fino al completamento del download, ora utilizziamo il download in background, ma è ancora limitato a pochi secondi

Android

Impossibile scaricare

Abbiamo riscontrato alcuni problemi con dispositivi in India, e parlando con gli utenti, facendogli provare diversi server DNS, ha funzionato

Quindi se hai il problema, prova a utilizzare un server DNS diverso come Cloudflare o Google DNS

Cloudflare: 1111 e 1001

Google DNS: 8888 e 8844 o dnsgoogle

Self Hosted

Quando stai distribuendo un aggiornamento self-hosted, tieni presente che non puoi utilizzare endpoint “HTTP” poiché è contro le politiche di sicurezza delle app Android, se vuoi comunque farlo, segui questa guida:

Unzip

Problema di 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:

Problema Clearfix

  • Se hai problemi con usesCleartextTraffic, è perché il plugin segue le buone pratiche raccomandate da sonar cloud, nel 90% dei casi funzionerà bene, ma con alcuni plugin causa problemi

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

tools:replace="android:usesCleartextTraffic"
xmlns:tools="http://schemasandroidcom/tools"

iOS

Manifesto della Privacy

Aggiungi la chiave dizionario NSPrivacyAccessedAPICategoryUserDefaults al tuo Privacy Manifest (solitamente ios/App/PrivacyInfoxcprivacy):

<?xml version="10" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 10//EN" "http://wwwapplecom/DTDs/PropertyList-10dtd">
<plist version="10">
<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>CA921</string>
</array>
</dict>
</array>
</dict>
</plist>

Raccomandiamo di dichiarare CA921 come motivo per accedere all’API UserDefaults

Permessi di rete

Quando si utilizza un server locale per testare gli aggiornamenti, l’app chiederà i permessi di rete, è un comportamento normale, non accade quando si usa un server remoto

Entrambi i SO

Quando si eseguono aggiornamenti in modalità manuale, alcuni eventi non sono facili da catturare, ad esempio il fallimento dell’aggiornamento si attiva poco 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à auto è il modo consigliato per fare gli aggiornamenti

I PR sono benvenuti per aiutarci a migliorare questo aspetto

CLI

se la tua CLI ha problemi a fare qualsiasi cosa,

Controlla se appId e appName sono presenti nel tuo capacitorconfigts

Segui la guida della documentazione ufficiale: