Saltare al contenuto

Problemi noti

GitHub
  • Quando sviluppi, se utilizzi la funzione di ricarica live 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.
  • Di solito accade quando vengono inviati 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 messo l'utente in contatto con il supporto, gli abbiamo fatto provare diversi server DNS, e funzionava.

Se hai questo problema, prova a utilizzare un diverso server DNS 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

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

Problema di scompattamento: 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, per favore 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 a perfezione, 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 ai UserDefaults API.

Quando si utilizza un server locale per il testing, l'app chiederà il permesso 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 il fallimento dell'aggiornamento attiva proprio prima che il tuo JS code si ricarichi, quindi non riuscirai a catturarlo.

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

Avremo bisogno di 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 accetti per aiutarci a migliorare questo.

se il tuo CLI ha problemi a fare qualsiasi cosa,

Controlla se ID dell'applicazione e Nome dell'applicazione sono presenti nel tuo capacitor.config.ts

Segui la guida del documento ufficiale:

Se stai utilizzando Problemi noti per pianificare il lavoro dei plugin nativi, connettilo con Usando @capgo/capacitor-aggiornatore per la capacità nativa in Usando @capgo/capacitor-aggiornatore, Directory dei plugin di Capgo per il flusso di lavoro del prodotto in Directory dei plugin di Capgo, Plugin di Capacitor sviluppati da Capgo per la dettaglio di implementazione in Plugin di Capacitor sviluppati da Capgo, Aggiungere o Aggiornare Plugin per la dettaglio di implementazione in Aggiungere o Aggiornare Plugin, e Alternative per Plugin di Enterprise di Ionic per il flusso di lavoro del prodotto in Alternative per Plugin di Enterprise di Ionic.