Guideline 2.5.1 (exigences logicielles) : faire le ménage dans les autorisations et les modes d'arrière-plan d'un projet WebViewGold
Le projet Xcode WebViewGold prend en charge des dizaines de fonctionnalités natives, il est donc livré avec des textes d'autorisation pour chacune d'elles. Apple attend d'une app qu'elle ne déclare que ce qu'elle utilise. Quinze minutes dans Info.plist et dans l'onglet Capabilities suffisent à transformer un refus 2.5 en approbation.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
Garantie d'approbation – ou remboursement sous 14 jours
Aucun codage requis
Paiement unique, mises à jour gratuites
Support humain 24/7
Conçu en Allemagne depuis 2014 · ISO 27001
9:41
Votre app
Votre appDésormais dans votre poche
App Store · Google Play Approuvée
Ce que disent les règles 2.5
La section 2.5 couvre les exigences logicielles. La 2.5.1 demande aux apps de n'utiliser que des API publiques, et uniquement pour l'usage prévu ; les examinateurs étendent cette règle aux capacités et autorisations qu'une app déclare sans jamais s'en servir. La 2.5.4 précise que les modes d'arrière-plan ne peuvent être activés que pour leur usage prévu (audio, localisation, VoIP, etc.). La 2.5.6 impose aux apps qui naviguent sur le web d'utiliser WebKit, ce que fait précisément la WKWebView de WebViewGold : cette règle joue donc en votre faveur.
Le refus ressemble à « Your app includes a usage description for Contacts but we could not find a feature that uses it ». Les contrôles automatisés d'Apple comme l'examinateur regardent Info.plist et les entitlements ; une app de recettes qui demande l'accès NFC paraît suspecte aux deux.
Les textes d'autorisation du projet et la fonctionnalité WebViewGold derrière chacun
Autorisation (purpose string dans Info.plist)
Utilisée par
À garder si
Tracking Usage Description (suivi)
App Tracking Transparency, AdMob
Toujours. La documentation indique que cette clé est obligatoire et que sa suppression fait planter l'app. Gardez-la même sans publicité.
Appareil photo
Envoi de fichiers depuis l'appareil photo, scanners qrcode:// et barcodescanner://, scanner de documents, lampe torche
Votre app web propose un envoi depuis l'appareil photo, un scanner ou un bouton lampe torche.
Photothèque (lecture / ajout)
Envoi d'images depuis la galerie, enregistrement d'images par le gestionnaire de téléchargements
Vos utilisateurs envoient ou enregistrent des photos dans votre app.
Localisation pendant l'utilisation
Géolocalisation HTML5 avec autorisation native
Votre app web appelle l'API de géolocalisation. Rédigez un texte d'usage qui nomme la fonctionnalité (« pour trouver les salles de sport près de chez vous »).
Localisation toujours + Background Modes : Location updates
Option backgroundlocation
Uniquement avec backgroundlocation réglé sur true et un vrai besoin en arrière-plan. Sinon, supprimez les deux.
Vous avez activé cette API précise. Sinon, supprimez-la.
Background Modes : Audio
Audio HTML en arrière-plan
Votre app lit de l'audio lorsqu'elle est réduite (radio, podcasts). Sinon, supprimez-le.
Faites le ménage dans le projet avant de resoumettre
Supprimez les purpose strings inutiles
Ouvrez Info.plist dans Xcode, passez en revue chaque entrée « Privacy - ... Usage Description » et retirez celles des fonctionnalités qui ne figurent pas sur votre liste. Gardez la Tracking Usage Description. La documentation de publication décrit cette étape.
Réécrivez les textes que vous gardez
Remplacez le texte du modèle par l'usage réel, avec vos mots : « Scannez le QR code de votre carte de salle de sport pour vous enregistrer », et non « Cette app a besoin d'accéder à l'appareil photo ». Un texte précis aide aussi pour la guideline 5.1.1.
Vérifiez Signing & Capabilities
Background Modes ne doit lister que ce que vous utilisez : Remote notifications pour le push, Location updates uniquement avec backgroundlocation, Audio uniquement pour la lecture en arrière-plan. Retirez les capacités ajoutées pendant vos essais.
Supprimez les demandes inutiles
Si vous n'utilisez pas le push, réglez askforpushpermissionatfirstrun sur false pour qu'aucune boîte de dialogue de notifications n'apparaisse. Si vous utilisez le push mais voulez demander plus tard, laissez-le sur false et appelez registerpush:// après l'onboarding.
Recompilez, testez chaque demande d'autorisation, incrémentez le numéro de build
Chaque autorisation restante doit s'afficher au moment où la fonctionnalité correspondante est utilisée, et nulle part ailleurs. Envoyez ensuite le nouveau build et répondez dans le Resolution Center avec la liste des clés supprimées.
Avec une bonne version optimisée de votre application Web, vous pouvez avoir une superbe application mobile en quelques minutes. De plus, le service client est très agréable et très utile! Je ne peux que recommander WebViewGold :-)
Julian Koch · Co-fondateur de DuelDonkey · CodeCanyon
Les autres constats 2.5 qui touchent les apps web encapsulées
API privées (2.5.1) : un problème uniquement si vous laissez Cursor ou Claude Code ajouter du code Swift natif qui appelle des méthodes non documentées. Limitez vos modifications natives à Config.swift et aux plugins documentés.
Connexion biométrique (2.5.13) : l'authentification par reconnaissance faciale doit passer par le framework système LocalAuthentication, celui qu'utilisent bioauth:// et enableBioMetricAuth.
Modes d'arrière-plan (2.5.4) : Audio pour une app sans audio et Location updates « au cas où » sont les grands classiques.
Prompt : faites auditer le projet par Claude Code ou Cursor
Prompt pour Claude Code / Cursor ouvert dans le dossier du projet Xcode WebViewGold
Auditez ce projet iOS WebViewGold à la recherche d'autorisations inutilisées. 1) Lisez Config.swift et listez chaque fonctionnalité native activée (push, biométrie, géolocalisation, scanners, AdMob, téléchargements de fichiers, contacts, NFC, audio en arrière-plan, localisation en arrière-plan). 2) Lisez Info.plist et listez chaque clé Privacy usage description. 3) Pour chaque clé, dites-moi si une fonctionnalité activée en a besoin. 4) Produisez l'Info.plist modifié sans les clés inutiles, mais gardez NSUserTrackingUsageDescription dans tous les cas. 5) Réécrivez les purpose strings restantes pour que chacune nomme la fonctionnalité concrète de mon app : [décrivez votre app]. 6) Dites-moi quelles entrées Background Modes je dois retirer dans Signing and Capabilities. Ne modifiez rien d'autre dans le projet.
Questions fréquentes
Supprimer des clés d'autorisation va-t-il casser des fonctionnalités WebViewGold plus tard ?
Seulement la fonctionnalité liée à cette clé. Si vous activez le scanner QR dans une future mise à jour, rajoutez la description d'usage de l'appareil photo dans cette même mise à jour. Supprimer la clé de suivi est le seul changement qui casse l'app elle-même.
Apple cite la 2.5.4, mais je n'ai jamais touché aux modes d'arrière-plan. D'où viennent-ils ?
Vérifiez Signing and Capabilities dans Xcode. Un mode d'arrière-plan a pu être activé en suivant un tutoriel sur le push ou la localisation. Retirez-le à cet endroit, recompilez et resoumettez.
Le Cloud Builder a-t-il ce problème ?
Le Cloud Builder produit l'app à partir des fonctionnalités que vous activez dans le navigateur ; vous ne modifiez donc pas Info.plist vous-même. Activez uniquement les fonctionnalités que vous utilisez et rédigez leurs textes d'usage.
Trois façons de mettre votre app dans les stores
Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.
Faites-le vous-même
$109 par plateforme, paiement unique
La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.
Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.