From ebb9273dc3917df2f2bbc3a1e90c816db2660366 Mon Sep 17 00:00:00 2001 From: Sylvain Bettinelli Date: Mon, 10 Aug 2026 08:10:10 +0000 Subject: [PATCH] Le scan de code-barres ne pouvait pas fonctionner sur Android MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le manifest ne declarait que INTERNET. Or /meals scanne via navigator.mediaDevices.getUserMedia() : Capacitor 8 relaie bien la demande (BridgeWebChromeClient.onPermissionRequest mappe VIDEO_CAPTURE sur Manifest.permission.CAMERA, puis lance le permissionLauncher), mais il ne peut demander a l'utilisateur que ce qui est declare dans le manifest. La permission etant absente, le scan etait le seul chemin casse - continuait de marcher, puisqu'il delegue a l'app appareil photo par intent. CAMERA implique android.hardware.camera ET android.hardware.camera.autofocus en fonctionnalites REQUISES, donc filtrage au Play Store, tant qu'on ne les redeclare pas en required="false". Les deux sont donc declarees explicitement : le scan demande facingMode ideal, pas exact, l'app reste utilisable sans. Cote iOS, les libelles de permission ne decrivaient que le scan de code-barres et la photo de profil, alors que la camera et la photothèque servent aussi a photographier une assiette et une etiquette nutritionnelle pour analyse. Un libelle qui ne couvre pas l'usage reel est un motif classique de rejet App Store. NSPhotoLibraryAddUsageDescription reste inutile : rien n'ecrit dans la photothèque (aucun PHPhotoLibrary ni UIImageWriteToSavedPhotosAlbum dans ios/). Les deux fichiers sont bien formes (xml.etree, plistlib). Rien n'est compile ici : reste a verifier sur un appareil que le dialogue camera apparait et que le flux video s'affiche. Co-Authored-By: Claude Opus 5 (1M context) --- android/app/src/main/AndroidManifest.xml | 20 ++++++++++++++++++++ ios/App/App/Info.plist | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ba2b7bc..b0af6dd 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -32,4 +32,24 @@ + + + + + + + diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index 9e97689..63b11d8 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -27,7 +27,7 @@ LSRequiresIPhoneOS NSCameraUsageDescription - Coach Hypnotruck peut utiliser l'appareil photo pour scanner les codes-barres alimentaires. + Coach Hypnotruck utilise l'appareil photo pour scanner les codes-barres des aliments, photographier vos assiettes et photographier les étiquettes nutritionnelles. Ces images servent à identifier l'aliment et à estimer ses valeurs nutritionnelles, puis à alimenter votre journal alimentaire. NSHealthShareUsageDescription Coach Hypnotruck lit vos données de santé (FC, pas, calories, VO2max) pour adapter vos séances et tracker votre progression. NSHealthUpdateUsageDescription @@ -41,7 +41,7 @@ NSSupportsLiveActivities NSPhotoLibraryUsageDescription - Coach Hypnotruck peut accéder à vos photos pour ajouter une photo de profil. + Coach Hypnotruck accède à vos photos pour importer une image déjà prise : photo d'assiette ou d'étiquette nutritionnelle à analyser, photo de séance, ou photo de profil. Seules les images que vous choisissez sont envoyées, pour alimenter votre journal alimentaire et votre compte. UIBackgroundModes remote-notification