Aller directement au contenu

Problèmes connus

  • Lorsque vous développez, si vous utilisez la fonctionnalité Ionic live reload à partir de CLI, elle remplacera le plugin, vous ne verrez donc jamais vos mises à jour.
  • Il utilise le même système que Ionic en sous-couche, vous ne verrez donc pas vos mises à jour.
  • Cela se produit généralement lorsque des mises à jour importantes (> 20mb) sont envoyées, une grande partie des utilisateurs ne recevront pas la dernière version.
    Dans le passé, les utilisateurs devaient garder l'application ouverte jusqu'à ce que le téléchargement soit terminé, maintenant nous utilisons le téléchargement en arrière-plan, mais il est toujours limité à quelques secondes.

Nous avons rencontré certains problèmes avec les appareils en Inde, et nous avons pu résoudre le problème en faisant appel à l'utilisateur et en lui demandant de tester différents serveurs DNS, et cela a fonctionné.

Si vous rencontrez ce problème, essayez d'utiliser un serveur DNS différent comme Cloudflare ou Google DNS.

Cloudflare: 1.1.1.1 et 1.0.0.1

Google DNS : 8.8.8.8 et 8.8.4.4 ou dns.google

Lorsque vous effectuez une mise à jour auto-hébergée, soyez conscient que vous ne pouvez pas utiliser un point de terminaison « HTTP » car cela est contraire aux politiques de sécurité des applications Android. Si vous souhaitez toujours le faire, suivez ce guide :

Problème de dézippage : les entrées DEFLATED peuvent avoir un EXT descriptor

Si vous avez dézipé votre bundle avec quelque chose d'autre que le CLI, le format ou votre zip pourrait être incorrect, veuillez utiliser le CLI commande npx @capgo/cli zip BUNDLE_FOLDER.

C'est un problème connu de Java :

  • Si vous avez des problèmes avec usesCleartextTraffic, c'est parce que le plugin suit la bonne pratique recommandée par sonar cloud, dans 90% des cas, cela fonctionnera tout seul, mais avec certains plugins qui causent des problèmes.

Pour le résoudre, ajoutez dans android/app/src/main/AndroidManifest.xml dans le <application> Clé :

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

Ajoutez la NSPrivacyAccessedAPICategoryUserDefaults clé du dictionnaire à votre Manifeste de confidentialité (généralement 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>

Nous recommandons de déclarer CA92.1 en raison du motif d'accès à UserDefaults API

Lorsque vous utilisez un serveur local pour la mise à l'échelle de test, l'application demandera des permissions de réseau, ce qui constitue un comportement normal. Il ne s'agit pas du cas lorsque vous utilisez un serveur distant.

Lorsque vous effectuez des mises à jour en mode manuel, certains événements ne sont pas faciles à capturer. Par exemple, le déclencheur de mise à jour échouée se déclenche juste avant que votre code JS se réinitialise, vous ne pourrez donc pas le capturer.

Une alternative consiste à lister les bundles et à vérifier les statistiques d'erreurs pour savoir si la mise à jour a échoué.

Nous devons trouver un moyen plus efficace de gérer cela à l'avenir, mais ce n'est pas une priorité, puisque le mode automatique est la méthode recommandée pour effectuer les mises à jour.

Les PR sont les bienvenus pour nous aider à améliorer cela.

si votre CLI rencontre des difficultés pour faire quoi que ce soit,

Vérifiez si appId et appName sont présents dans votre capacitor.config.ts

Suivez la guide de la documentation officielle :