Problèmes connus
Rechargement en direct Ionic
- Lorsque vous développez, si vous utilisez la fonction de rechargement en direct d’Ionic depuis la CLI, elle remplacera le plugin, vous ne verrez donc jamais vos mises à jour
Rechargement en direct Quasar
- Il utilise le même système qu’Ionic en interne, vous ne verrez donc pas vos mises à jour
Échecs des mises à jour
- Cela se produit généralement lorsque de grandes mises à jour (> 20 Mo) sont envoyées, un grand pourcentage d’utilisateurs n’obtiendra pas la dernière version Auparavant, les utilisateurs devaient garder l’application ouverte jusqu’à la fin du téléchargement, maintenant nous utilisons le téléchargement en arrière-plan, mais c’est toujours limité à quelques secondes
Android
Impossible de télécharger
Nous avons constaté des problèmes avec des appareils en Inde, et après avoir contacté les utilisateurs, leur avoir fait essayer différents serveurs DNS, cela a fonctionné
Donc si vous rencontrez ce problème, essayez d’utiliser un autre serveur DNS comme Cloudflare ou Google DNS
Cloudflare : 1111 et 1001
Google DNS : 8888 et 8844 ou dnsgoogle
Auto-hébergé
Lorsque vous poussez une mise à jour auto-hébergée, gardez à l’esprit que vous ne pouvez pas utiliser un point de terminaison “HTTP” car cela va à l’encontre des politiques de sécurité des applications Android, si vous souhaitez toujours le faire, suivez ce guide :
Décompression
Problème de décompression : Les entrées DEFLATED peuvent avoir un descripteur EXT
Si vous avez compressé votre bundle avec autre chose que la CLI, le format de votre zip pourrait être incorrect, veuillez utiliser la commande CLI npx @capgo/cli zip BUNDLE_FOLDER
C’est un problème connu de Java :
Problème Clearfix
- Si vous avez des problèmes avec usesCleartextTraffic, c’est parce que le plugin suit les bonnes pratiques recommandées par sonar cloud, dans 90% des cas cela fonctionnera très bien, mais avec certains plugins cela cause des problèmes
Pour résoudre ce problème, ajoutez dans android/app/src/main/AndroidManifestxml
dans la clé <application>
:
tools:replace="android:usesCleartextTraffic"xmlns:tools="http://schemasandroidcom/tools"
iOS
Manifeste de confidentialité
Ajoutez la clé de dictionnaire NSPrivacyAccessedAPICategoryUserDefaults
à votre Manifeste de confidentialité (généralement 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> <!-- Ajoutez cette entrée dict au tableau si le fichier existe déjà --> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA921</string> </array> </dict> </array> </dict></plist>
Nous recommandons de déclarer CA921
comme raison d’accès à l’API UserDefaults
Permissions réseau
Lors de l’utilisation d’un serveur local pour tester la mise à jour, l’application demandera la permission réseau, c’est un comportement normal, ce n’est pas le cas lorsque vous utilisez un serveur distant
Les deux OS
Lors des mises à jour en mode manuel, certains événements ne sont pas faciles à capturer, par exemple l’échec de mise à jour se déclenche juste avant que votre code JS ne se recharge, vous ne pourrez donc pas le capturer
Une alternative est de lister les bundles et de vérifier les statistiques d’erreur pour savoir si la mise à jour échoue
Nous devons trouver une meilleure façon de gérer cela à l’avenir, mais ce n’est pas une priorité, puisque le mode auto est la façon recommandée de faire les mises à jour
Les PRs sont les bienvenues pour nous aider à améliorer cela
CLI
si votre CLI a des problèmes pour faire quoi que ce soit,
Vérifiez si appId et appName sont présents dans votre capacitorconfigts
Suivez le guide de la documentation officielle :