Outils et scripts IA
Vérification du manifeste de confidentialité Apple
Vérifiez un projet iOS avant de l'envoyer : API à raison obligatoire sans raison déclarée, manifestes de confidentialité rejetés par App Store Connect, codes de raison mal orthographiés, domaines de suivi incorrects, SDK obsolètes de la liste d'Apple et manifestes jamais intégrés par la cible.
Ce que vous recevez : 1 fichier · 62.62 KB · ZIP
Voir les options d'achatDescription du produit
UserDefaults.standard dans votre code Swift sans entrée NSPrivacyAccessedAPICategoryUserDefaults, ou un code de raison saisi c617.1 au lieu de C617.1, suffit pour qu'App Store Connect refuse un build, et une URL complète là où Apple attend un simple domaine de suivi rend le manifeste invalide. Cette skill détecte ces erreurs et les autres erreurs de manifeste de confidentialité avant l'envoi, et vous explique comment corriger chacune.
Votre agent lance un scanner sur votre projet : fichiers PrivacyInfo.xcprivacy, manifestes que Cordova (config.xml) et Expo (app.json, app.config.json) écrivent au moment du build, Info.plist et autres plists, code Swift, Objective-C et C/C++, fichiers de projet Xcode (groupes classiques et dossiers synchronisés de Xcode 16), Package.swift, Podfile, Podfile.lock, Package.resolved et le pubspec.lock de Flutter. Il compare chaque clé et chaque valeur aux listes d'Apple de catégories, codes de raison, types de données et finalités, détermine quel manifeste couvre quel code (application, extension, package Swift), et ignore les commentaires, les chaînes, les tests et le code tiers embarqué (Pods, plugins et plateformes Cordova). Les manifestes situés dans Pods ne sont vérifiés que pour ce qui les fait rejeter par App Store Connect, et un manifeste dans le bundle de ressources d'une bibliothèque couvre le code de cette bibliothèque. Il ne compile ni n'exécute jamais le projet. Il renvoie BLOCK, REVIEW ou NOT FLAGGED, avec le fichier, la ligne, la raison et une approche plus sûre, et chaque règle renvoie à la documentation Apple sur laquelle elle s'appuie. Les secrets ne sont jamais affichés.
Ce qui est vérifié
BLOCK (à corriger avant la publication)
- P01 : API à raison obligatoire utilisées dans votre code (UserDefaults, @AppStorage, horodatages de fichiers, stat, systemUptime, mach_absolute_time, clés d'espace disque, statfs, activeInputModes) sans manifeste déclarant la catégorie (projets iOS, iPadOS, tvOS, visionOS et watchOS)
- P02 : manifestes (fichiers, config.xml de Cordova ou configuration Expo) qui ne sont pas des listes de propriétés valides ou contiennent des clés qui ne sont pas des clés de manifeste de confidentialité
- P03 : entrées NSPrivacyAccessedAPITypes invalides (catégorie inconnue ou à la casse incorrecte, code de raison non approuvé, à la casse incorrecte ou d'une autre catégorie, liste de raisons vide, clé manquante ou en trop)
- P04 : clés de suivi invalides (types incorrects, tracking true avec une liste de domaines vide, tracking false avec des domaines, entrées qui ne sont pas un simple domaine : une URL, un chemin, une requête ou une barre oblique finale)
- P05 : entrées NSPrivacyCollectedDataTypes invalides (type de données ou finalité inconnus, clé manquante ou en trop, Linked ou Tracking qui ne sont pas des booléens)
REVIEW (à vérifier avant la sortie)
- P11 : suivi incohérent (true sans liste de domaines, domaines sans NSPrivacyTracking, un type de données utilisé pour le suivi alors que le suivi n'est pas déclaré, une demande App Tracking Transparency sans manifeste indiquant que l'application effectue un suivi)
- P12 : clés de manifeste de confidentialité dans Info.plist ou un autre plist, ou un fichier .xcprivacy mal nommé
- P13 : SDK de la liste d'Apple verrouillés sur des versions sans manifeste de confidentialité (Alamofire, Kingfisher, SDWebImage, SnapKit, Lottie, SwiftyJSON, Starscream, Firebase, RxSwift, SVProgressHUD, RealmSwift, Charts, Facebook SDK, AFNetworking, MBProgressHUD) et plugins Flutter abandonnés (path_provider_ios, shared_preferences_ios, package_info, wakelock)
- P14 : un PrivacyInfo.xcprivacy que la cible de l'application ne copie pas, ou une cible de package Swift qui ne le déclare pas comme ressource
- P15 : code qui lit l'identifiant publicitaire, identifierForVendor, la localisation, les contacts ou des données de santé sans type de données collectées correspondant
- P16 : une API à raison obligatoire déclarée dans le manifeste d'une autre cible mais pas dans celui situé à côté du code (extensions d'application, frameworks)
- P17 : le manifeste propre à une application qui déclare 0A2A.1 ou C56D.1, des raisons réservées aux SDK tiers
- P18 : utilisation d'API à raison obligatoire dans un projet Expo dont le manifeste provient d'un app.config.js ou app.config.ts qui ne nomme pas la catégorie (la configuration ne peut pas être exécutée, c'est donc un point à vérifier)
Contenu inclus
- Le scanner (Python 3.9+, bibliothèque standard uniquement)
- Un guide des règles avec, pour chaque règle, la raison, l'approche plus sûre et le lien vers la documentation Apple
- Un projet d'exemple risqué et un projet sûr (une application de notes avec un widget, un package Swift, CocoaPods et une petite application Expo), et le rapport réel que le scanner produit sur le projet risqué
Limites
Il lit les fichiers du projet, pas l'application compilée : les manifestes à l'intérieur des SDK binaires, les API appelées uniquement par des SDK compilés et le code en Kotlin, C# ou JavaScript ne sont pas vérifiés. Les manifestes générés au build sont lus depuis le config.xml de Cordova et le app.json ou app.config.json d'Expo ; dans un app.config.js ou app.config.ts d'Expo, seuls les noms de catégories sont recherchés, et les manifestes ajoutés par des config plugins ne sont pas visibles. Quel manifeste couvre quel code est déterminé à partir des dossiers, des packages Swift et du projet Xcode, et non d'un graphe de build complet. La table des versions de SDK couvre les SDK cités ci-dessus ; les autres SDK de la liste d'Apple ne sont pas signalés. Savoir si une raison déclarée correspond à ce que fait réellement le code, et si des données quittent l'appareil, ne peut pas être tranché à partir du texte. NOT FLAGGED n'est pas une garantie.
Contenu de l'archive
Un fichier ZIP de 45 fichiers : SKILL.md, le scanner dans scripts/ (8 fichiers Python), references/rules.md (chaque règle avec sa raison et l'approche plus sûre) et examples/ (34 fichiers d'exemple plus report.md, la sortie réelle du scanner sur l'exemple risqué).
Mode d'emploi : Il s'agit d'une skill pour agent : un dossier contenant un fichier SKILL.md et des scripts Python qu'un agent de programmation IA comme Claude Code, Cursor ou Codex CLI peut exécuter. Décompressez-la dans le dossier des skills de votre agent (pour Claude Code : ~/.claude/skills/), puis demandez à votre agent de vérifier votre projet. Les scripts fonctionnent aussi seuls avec Python 3.9 ou plus récent, sans rien à installer. Ils se contentent de lire vos fichiers : aucun accès réseau, et rien n'est envoyé nulle part.
Ce que vous recevez
1 fichier · 62.62 KB
- apple-privacy-manifest-check-1.0.0.zipZIP · 62.62 KB
Outils et scripts IA
Vérification du manifeste de confidentialité Apple
Vérifiez un projet iOS avant de l'envoyer : API à raison obligatoire sans raison déclarée, manifestes de confidentialité rejetés par App Store Connect, codes de raison mal orthographiés, domaines de suivi incorrects, SDK obsolètes de la liste d'Apple et manifestes jamais intégrés par la cible.
Getly a ouvert les fichiers envoyés et n'a rien trouvé qui empêche leur ouverture. Ce n'est ni une analyse antivirus ni une note de qualité.
Tags
Questions fréquentes
Ai-je accès au produit immédiatement ?
Oui. C'est un produit numérique : vous pouvez le télécharger juste après le paiement, directement depuis votre bibliothèque.
Puis-je l'utiliser pour des projets commerciaux ?
Oui. L'usage commercial est autorisé : utilisez-le dans votre propre activité et dans ce que vous vendez. Vous ne pouvez pas revendre ni redistribuer le fichier lui-même.
Quelle est votre politique de remboursement ?
Vous pouvez demander un remboursement dans un délai de 30 jours. Si quelque chose ne va pas, demandez-le depuis votre commande et l'équipe Getly l'examine.
Quels formats et quelles tailles de fichier vais-je recevoir ?
Vous téléchargerez 1 fichier - ZIP - 62.62 KB au total.
Ai-je droit aux mises à jour gratuites ?
Oui : quand le vendeur publie une nouvelle version, vous pouvez retélécharger les derniers fichiers depuis votre bibliothèque sans frais. Consultez le journal des modifications pour les dernières mises à jour.
Prix
$5.00



