Le scan de code-barres ne pouvait pas fonctionner sur Android

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 - <input capture> 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) <noreply@anthropic.com>
This commit is contained in:
Sylvain Bettinelli
2026-08-10 08:10:10 +00:00
parent 1c0e0320a9
commit ebb9273dc3
2 changed files with 22 additions and 2 deletions

View File

@@ -27,7 +27,7 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>Coach Hypnotruck peut utiliser l'appareil photo pour scanner les codes-barres alimentaires.</string>
<string>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.</string>
<key>NSHealthShareUsageDescription</key>
<string>Coach Hypnotruck lit vos données de santé (FC, pas, calories, VO2max) pour adapter vos séances et tracker votre progression.</string>
<key>NSHealthUpdateUsageDescription</key>
@@ -41,7 +41,7 @@
<key>NSSupportsLiveActivities</key>
<true/>
<key>NSPhotoLibraryUsageDescription</key>
<string>Coach Hypnotruck peut accéder à vos photos pour ajouter une photo de profil.</string>
<string>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.</string>
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>