# Résoudre les problèmes liés aux applications sur les appareils Comment résoudre les problèmes connus liés aux applications sur les appareils. - **Votre application ne sera pas importée vers Stripe** Si votre fichier APK est trop volumineux ou si votre vitesse de téléchargement est trop lente, il se peut que vous receviez une erreur d’expiration du délai d’attente lorsque vous chargez votre fichier APK à l’aide de l’API [Files](https://docs.stripe.com/api/files.md). Stripe applique un délai de 45 secondes sur ses serveurs et génère une erreur si l’application n’a pas été chargée dans ce laps de temps. Pour résoudre ce problème, chargez votre fichier APK sur un serveur disposant d’une meilleure connexion internet (par exemple, une instance AWS EC2 ou un autre VPS) et chargez-la ensuite vers Stripe. La connexion réseau entre votre serveur et les serveurs Stripe est généralement beaucoup plus rapide que les connexions à Stripe à la maison ou au bureau via un FAI. - **Nouvelle soumission en mode production d’une application approuvée en environnement de test** Si vous avez obtenu l’approbation pour votre application dans un environnement de test et que vous souhaitez l’utiliser en mode production, vous devez la soumettre à nouveau pour approbation. Le [processus d’examen des applications](https://docs.stripe.com/terminal/features/apps-on-devices/app-review.md) est le même pour les modes de test et de production. Assurez-vous de télécharger exactement le même APK pour l’approbation automatique. - **Accès à l’écran des paramètres administrateur de l’appareil depuis votre application** Par défaut, l’utilisateur de l’appareil peut accéder aux paramètres d’administration en faisant glisser depuis le bord gauche de l’écran et en appuyant sur **Paramètres**. Cette méthode ne fonctionne pas lorsque l’application de lancement par défaut est une application tierce. Vous pouvez utiliser l’URI `stripe://settings/` pour ajouter un lien profond vers les paramètres d’administration, puis lancer l’URI à partir de votre application en utilisant le code suivant dans votre **Activité** ou votre **Fragment** : #### Kotlin ```kotlin startActivity( Intent(Intent.ACTION_VIEW) .setData(Uri.parse("stripe://settings/")) ) ``` - **Mises à jour de la langue de l’appareil dans votre DevKit** L’application du lecteur sur le DevKit ne peut actuellement pas modifier la langue de l’appareil. Vous pouvez changer la langue de l’appareil via l’application Paramètres d’Android. Utilisez `adb` pour lancer l’application Paramètres d’Android : ``` $ adb shell am start -a android.settings.SETTINGS ``` - **Paramètres Android sur les appareils Stripe** Pour des raisons de sécurité et de fiabilité, Stripe bloque l’application Paramètres Android sur les appareils Stripe en production. Par conséquent, il n’est pas possible de lancer l’application Paramètres Android ni d’y accéder via un lien profond depuis un appareil Stripe. - **Exécutez plusieurs applications sur le Stripe Reader S700/S710** Le Stripe Reader S700/S710 prend en charge l’exécution de plusieurs applications, mais nous ne fournissons pas de lanceur d’applications. Vous devez intégrer vous-même la fonctionnalité permettant de passer d’une application à l’autre. Lorsque vous déployez vos applications, vous pouvez spécifier la `default_kiosk_application`, qui est l’application se lançant lors de la vérification des mises à jour de l’appareil et après les paiements. Vous ne pouvez pas utiliser le Dashboard pour configurer plusieurs applications sur un même appareil. - **Déployer une application web sur vos appareils Stripe** Vous pouvez packager votre application Web pour qu’elle s’exécute sur vos appareils Stripe. Utilisez un framework, tel que [Cordova](https://cordova.apache.org/), pour modifier votre application Web afin qu’elle soit compatible avec Android et générer un package d’application Android (APK). Vous pouvez ensuite [charger l’APK](https://docs.stripe.com/terminal/features/apps-on-devices/submit.md) dans votre Dashboard Stripe. Les frameworks ne sont pas conscients de l’existence de Stripe ni de l’[Android Terminal SDK](https://stripe.dev/stripe-terminal-android/). Vous devez donc créer un pont JavaScript entre votre application web et le SDK afin d’envoyer des commandes depuis JavaScript. Vous pouvez également utiliser l’[intégration pilotée par serveur](https://docs.stripe.com/terminal/payments/setup-integration.md) pour encaisser les paiements, sans avoir à utiliser la bibliothèque client Terminal ou un pont JavaScript. Cela permet à Stripe de gérer toutes les commandes d’encaissement des paiements et la communication avec l’appareil. - **Redémarrages fréquents de votre application** Les lecteurs de cartes Stripe Terminal redémarrent l’application par défaut en cas de plantage. Cela se manifeste différemment sur les appareils de production et les appareils DevKit : - Production : si vous configurez votre application comme application par défaut sur les appareils de production, elle redémarre automatiquement en cas de plantage. Si l’application plante pendant l’initialisation (par exemple, une migration de base de données manquante ou interrompue), l’appareil peut entrer dans une boucle de plantage. - DevKit : si vous configurez l’application de paiement Stripe comme application par défaut sur des appareils DevKit, votre application est placée en file d’attente sur l’appareil et devient alors l’application principale. Si l’application plante, l’application de paiement Stripe redémarre à la place. - **L’application se ferme lors du traitement d’un paiement comportant un grand nombre de postes** Si votre application se ferme lorsque vous traitez un paiement comprenant un nombre élevé de postes, le problème peut être lié à la mémoire. Le système d’exploitation Android limite à 500 Ko la quantité de données transmises par communication inter-processus (IPC) lors de l’enregistrement de l’état d’une activité. Pour éviter ces interruptions, vous pouvez stocker vos données en dehors de la mémoire volatile, par exemple dans une base de données. - **Anomalies dans les applications déployées** Si vous détectez un problème dans une application déjà déployée, vous pouvez le corriger dans l’application, charger une nouvelle version, puis [déployez votre application](https://docs.stripe.com/terminal/features/apps-on-devices/deploy-with-API.md). - **Afficher les logs de votre application sur les lecteurs en production** Stripe ne met pas à disposition pas les logs sur les lecteurs de production. Nous nous appuyons sur les intégrations Sentry à des fins de surveillance. - **Une application de point de vente installée manuellement sur un DevKit ne démarre pas après une transaction de paiement finalisée** Sur les lecteurs Stripe configurés pour Apps on Devices, l’[application kiosque à utiliser](https://docs.stripe.com/terminal/features/apps-on-devices/deploy-with-API.md) démarre une fois la transaction terminée. Sur un DevKit, l’application kiosque de l’appareil n’est définie que lorsque vous incluez celui-ci dans un groupe de déploiement. Pour définir l’application kiosque à utiliser sur un appareil DevKit : 1. Téléchargez votre application en sélectionnant uniquement les types d’appareils DevKit. Cela vous permet de ne pas [vérifier l’application](https://docs.stripe.com/terminal/features/apps-on-devices/app-review.md). 1. [Déployez la version de l’application](https://docs.stripe.com/terminal/features/apps-on-devices/deploy-with-API.md) dans un groupe de déploiement qui cible votre DevKit.