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 come Ionic sotto la pelle, quindi non vedrai le tue aggiornamenti.
  • Ciò accade di solito quando si inviano aggiornamenti di grandi dimensioni (> 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 chiamato gli utenti, li abbiamo fatti provare diversi server DNS e ha funzionato.

Se hai l'errore, prova a utilizzare un server DNS diverso come Cloudflare o DNS di Google.

Cloudflare: 1.1.1.1 e 1.0.0.1

DNS di Google: 8.8.8.8 e 8.8.4.4 o dns.google

Quando stai eseguendo un aggiornamento auto-hosted, assicurati di non utilizzare l'endpoint “HTTP” poiché è contro le politiche di sicurezza degli app Android, se lo desideri comunque farlo, segui questa guida:

Problema di scompattazione: gli elementi DEFLATED possono avere descriptor EXT

If you zipped your bundle with something different than the CLI, the format or your zip could be incorrect, please use the CLI command npx @capgo/cli zip BUNDLE_FOLDER.

This is a known issue of Java:

  • Se hai problemi con usesCleartextTraffic, è perché il plugin segue la buona pratica raccomandata da sonar cloud, in il 90% dei casi funziona solo bene, ma con alcuni plugin che 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 sulla 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 al UserDefaults API.

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

Quando si eseguono aggiornamenti manuali, alcuni eventi non sono facili da catturare, ad esempio il fallimento dell'aggiornamento attiva proprio prima che il tuo JS code si ricarichi, quindi non riuscirai a catturarlo.

Un'altra alternativa è elencare i pacchetti e controllare gli stati di 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 eseguire l'aggiornamento.

Sono accetti i PR per aiutarci a migliorare questo.

se il tuo CLI ha problemi a fare qualsiasi cosa,

Controlla se appId e Nome dell'app sono presenti nel tuo capacitor.config.ts

Segui la guida del documento ufficiale: