ITMS-90683 signifie que l’app téléversée peut accéder à une ressource protégée alors que son Info.plist final ne contient pas le purpose string requis. La solution n’est pas d’ajouter toutes les clés de confidentialité. Retrouvez la ressource nommée par App Store Connect, identifiez le code capable de l’atteindre et déclarez une raison honnête, tournée vers l’utilisateur — seulement si l’app a vraiment besoin de cet accès.
Lisez la clé dans le message
Le message de téléversement nomme normalement une clé manquante comme NSCameraUsageDescription, NSMicrophoneUsageDescription ou NSPhotoLibraryUsageDescription. Cette clé est votre point de départ. La référence des ressources protégées d’Apple explique quel purpose string correspond à chaque ressource.
« Cette app a besoin d’accéder à la caméra » répète le nom de la permission. Un string utile explique l’action : « Prenez une photo de profil » ou « Scannez un reçu pour le joindre à une dépense ».
Trouvez qui référence la ressource
- Cherchez dans la cible de l’app l’API ou la capability nommée dans l’avertissement.
- Vérifiez les extensions et les frameworks embarqués, pas seulement la cible principale.
- Passez en revue les SDK ajoutés récemment et les modules optionnels. Une dépendance peut référencer une API protégée même si votre UI ne l’appelle jamais.
- Décidez si le build de release a besoin de la fonctionnalité. Supprimez le chemin de code inutilisé ou ajoutez la déclaration correcte.
Vérifiez le bundle final de l’app
Exportez la même archive Release que celle que vous téléversez, puis inspectez le plist traité dans le bundle .app. Le guide Info.plist d’Apple décrit comment Xcode fusionne les réglages de cible et les plist fournis.
unzip YourApp.ipa -d ipa-check
plutil -p ipa-check/Payload/YourApp.app/Info.plist \
| grep UsageDescriptionÉcrivez un purpose string qui survit à la review
- Nommez l’action utilisateur qui déclenche l’accès.
- Expliquez ce que la donnée permet dans l’app.
- Décrivez le produit actuel, pas une fonctionnalité prévue.
- Localisez le string dans chaque langue prise en charge.
- Testez l’invite système sur une installation propre.
Téléversez un nouveau binaire
Modifier les métadonnées du store ne change pas le bundle de l’app. Incrémentez le numéro de build, archivez exactement la configuration de release, vérifiez le plist traité et téléversez un nouveau binaire. Gardez le message d’origine dans le ticket de release pour que la même dépendance ne réintroduise pas le problème en silence.
Cet article vous a-t-il aidé ?