Vai al contenuto

Problemi noti

GitHub
  • Durante lo sviluppo, se utilizzi la funzione Ionic live reload di CLI, questa sovrascriverà il plugin, impedendoti di vedere l'update.
  • Sotto il cofano usa lo stesso sistema di Ionic, quindi non vedrai i tuoi aggiornamenti.
  • Succede solitamente quando vengono pubblicati aggiornamenti pesanti (> 20mb): una gran parte degli utenti non riceverà l'ultima versione.
    In passato gli utenti dovevano tenere l'app aperta fino al completamento del download; ora usiamo il download in background, ma è comunque limitato a pochi secondi.

Abbiamo riscontrato alcuni problemi con dispositivi in India: abbiamo chiamato un utente, gli abbiamo fatto provare diversi server DNS e ha funzionato.

Se riscontri il problema, prova a usare 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 pubblichi un aggiornamento self-hosted, tieni presente che non puoi usare un endpoint “HTTP” perché va contro le policy di sicurezza delle app Android; se vuoi farlo comunque, segui questa guida:

Problema di unzip: le voci DEFLATED possono avere un descrittore EXT

Se hai zippato il bundle con uno strumento diverso da CLI, il formato o lo zip potrebbero essere errati; usa il comando CLI npx @capgo/cli zip BUNDLE_FOLDER.

Questo è un problema noto di Java:

  • Se riscontri problemi con usesCleartextTraffic, è perché il plugin segue le best practice consigliate da SonarCloud; nel 90% dei casi funzionerà correttamente, ma con alcuni plugin potrebbero esserci problemi.

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

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

Aggiungi la NSPrivacyAccessedAPICategoryUserDefaults chiave del dizionario al tuo Privacy Manifest (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>
<!-- 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 dell'accesso a UserDefaults API.

Usando un server locale per testare l'update, l'app chiederà i permessi di rete; è un comportamento normale, non accade con un server remoto.

In modalità manuale, alcuni eventi non sono facili da intercettare: ad esempio, l'evento di update fallito scatta subito prima che il tuo JS code si ricarichi, quindi non riuscirai a intercettarlo.

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

Dovremo trovare un modo migliore per gestirlo in futuro, ma non è una priorità, dato che la modalità auto è il modo consigliato per fare gli update.

I PR sono benvenuti per aiutarci a migliorare.

se il tuo CLI ha problemi a fare qualsiasi cosa,

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

Segui la guida della documentazione ufficiale:

Se stai usando Problemi noti per pianificare il lavoro sui plugin nativi, collegalo a Usando @capgo/capacitor-updater per la funzionalità nativa in Usando @capgo/capacitor-updater, Directory dei plugin di Capgo per il workflow del prodotto nella Capgo Plugin Directory, Plugin Capacitor di Capgo per i dettagli di implementazione in Capacitor Plugins di Capgo, Aggiunta o aggiornamento dei plugin per i dettagli su come aggiungere o aggiornare i plugin, e Alternative ai plugin Ionic Enterprise per il workflow del prodotto in Alternative ai plugin Ionic Enterprise.