{"id":245,"date":"2026-10-16T06:39:04","date_gmt":"2026-10-16T05:39:04","guid":{"rendered":"https:\/\/arrowlancer.ma\/blog\/?p=245"},"modified":"2026-10-16T06:39:04","modified_gmt":"2026-10-16T05:39:04","slug":"cndp-application-mobile-maroc-permissions-sdk-2026","status":"publish","type":"post","link":"https:\/\/arrowlancer.ma\/blog\/fr\/cndp-application-mobile-maroc-permissions-sdk-2026\/","title":{"rendered":"CNDP application mobile Maroc 2026 : permissions et SDK"},"content":{"rendered":"<p>Une application de livraison con\u00e7ue pour une PME casablancaise demande cinq autorisations d\u00e8s le premier lancement : localisation en arri\u00e8re-plan, acc\u00e8s aux contacts, cam\u00e9ra, notifications, stockage. Le code est propre, l\u2019app passe la revue Apple du premier coup. Quand le responsable conformit\u00e9 du client demande \u00e0 qui ces donn\u00e9es sont transmises et sur quelle base, personne dans l\u2019\u00e9quipe projet ne sait r\u00e9pondre pr\u00e9cis\u00e9ment.<\/p>\n<p>Ce d\u00e9calage est la norme plut\u00f4t que l\u2019exception. Une application mobile collecte structurellement plus de donn\u00e9es personnelles qu\u2019un site web, parce qu\u2019elle acc\u00e8de \u00e0 des capteurs et \u00e0 des identifiants que le navigateur ne donne pas. Et la plus grande partie de ces flux ne vient pas du code que vous avez command\u00e9 : elle vient des biblioth\u00e8ques tierces int\u00e9gr\u00e9es pour aller plus vite.<\/p>\n<p>La loi 09-08 ne distingue pas le site de l\u2019application : d\u00e8s qu\u2019un traitement de donn\u00e9es personnelles est mis en \u0153uvre, il rel\u00e8ve des formalit\u00e9s CNDP, et certaines cat\u00e9gories exigent une autorisation pr\u00e9alable et non une simple d\u00e9claration. La conformit\u00e9 CNDP application mobile ne se r\u00e8gle donc pas en copiant la politique de confidentialit\u00e9 du site dans l\u2019app. Elle se joue permission par permission et SDK par SDK.<\/p>\n<h2>Permissions mobiles : ce que chaque autorisation r\u00e9v\u00e8le vraiment<\/h2>\n<p>Le dialogue syst\u00e8me que voit l\u2019utilisateur (\u00ab Autoriser l\u2019acc\u00e8s \u00e0 votre position ? \u00bb) accorde un acc\u00e8s technique \u00e0 une ressource de l\u2019appareil. Il ne dit ni la finalit\u00e9 pr\u00e9cise, ni les destinataires, ni la dur\u00e9e de conservation. C\u2019est la premi\u00e8re chose \u00e0 regarder dans un audit, parce que l\u2019\u00e9cart entre ce que l\u2019app demande et ce qu\u2019elle utilise r\u00e9ellement est presque toujours l\u00e0.<\/p>\n<p>Les permissions application mobile Maroc qui soul\u00e8vent le plus de questions c\u00f4t\u00e9 CNDP :<\/p>\n<ul>\n<li><strong>Localisation pr\u00e9cise et en arri\u00e8re-plan.<\/strong> Une position toutes les trente secondes pendant six mois, c\u2019est un historique de d\u00e9placements : domicile, lieu de travail, habitudes, fr\u00e9quentations. Beaucoup d\u2019applications demandent l\u2019arri\u00e8re-plan alors que la localisation pendant l\u2019usage suffirait largement.<\/li>\n<li><strong>Carnet d\u2019adresses.<\/strong> Lire les contacts revient \u00e0 collecter les donn\u00e9es de personnes qui n\u2019ont jamais install\u00e9 votre app et n\u2019ont rien consenti. C\u2019est la permission la plus difficile \u00e0 justifier, et celle que je recommande le plus souvent de supprimer.<\/li>\n<li><strong>Cam\u00e9ra et phototh\u00e8que.<\/strong> Une CIN photographi\u00e9e pour un parcours KYC devient un document d\u2019identit\u00e9 stock\u00e9 quelque part. O\u00f9, chiffr\u00e9 comment, effac\u00e9 quand ?<\/li>\n<li><strong>Micro.<\/strong> Rarement n\u00e9cessaire en dehors d\u2019une messagerie vocale, souvent pr\u00e9sent par h\u00e9ritage d\u2019un template ou d\u2019un plugin.<\/li>\n<li><strong>Identifiant publicitaire (IDFA sur iOS, AAID sur Android).<\/strong> Identifiant unique rattachable \u00e0 un profil chez un tiers. C\u2019est une donn\u00e9e personnelle m\u00eame sans nom ni e-mail.<\/li>\n<li><strong>Bluetooth et scan Wi-Fi.<\/strong> Utilis\u00e9s aussi pour localiser en int\u00e9rieur, ce que l\u2019\u00e9cran de permission ne mentionne jamais.<\/li>\n<\/ul>\n<p>Demandez \u00e0 votre prestataire un tableau d\u2019une ligne par permission : \u00e0 quoi elle sert, dans quel \u00e9cran, quelle donn\u00e9e elle produit, vers o\u00f9 cette donn\u00e9e part. Toute permission qui reste dans le manifeste Android ou dans l\u2019Info.plist sans usage actif doit dispara\u00eetre avant la publication, pour la conformit\u00e9 comme pour le taux d\u2019acceptation.<\/p>\n<h2>SDK tiers : Firebase, Analytics, Facebook SDK, o\u00f9 partent les donn\u00e9es<\/h2>\n<p>Une application Flutter ou React Native de taille moyenne embarque facilement entre quinze et quarante d\u00e9pendances, dont une poign\u00e9e ouvrent des connexions r\u00e9seau vers l\u2019ext\u00e9rieur. Le code m\u00e9tier que vous avez pay\u00e9 repr\u00e9sente parfois la plus petite partie des flux sortants.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/arrowlancer-prod.firebasestorage.app\/blog-ma\/cndp-application-mobile-maroc-permissions-sdk-2026\/1.jpg\" alt=\"CNDP application mobile Maroc 2026 : permissions et SDK\" loading=\"lazy\" \/><\/p>\n<p>Firebase Analytics enregistre par d\u00e9faut des \u00e9v\u00e9nements automatiques, le mod\u00e8le d\u2019appareil, la version d\u2019OS, une localisation approximative d\u00e9duite de l\u2019adresse IP et un identifiant d\u2019installation pseudonyme. Crashlytics remonte des traces d\u2019ex\u00e9cution qui contiennent exactement ce que vos d\u00e9veloppeurs y ont mis, et j\u2019ai d\u00e9j\u00e0 vu des e-mails et des num\u00e9ros de commande appara\u00eetre dans des logs de crash. Cloud Messaging stocke le token de l\u2019appareil. Le SDK Facebook enregistre des \u00e9v\u00e9nements applicatifs automatiquement d\u00e8s l\u2019initialisation, souvent avant tout \u00e9cran de consentement, et les rapproche d\u2019un compte Meta existant. Les SDK d\u2019attribution de type AppsFlyer ou Adjust construisent, par nature, une empreinte de l\u2019installation.<\/p>\n<p>Tous ces flux sortent du Maroc. Un transfert de donn\u00e9es personnelles vers l\u2019\u00e9tranger ne s\u2019improvise pas : il doit figurer dans votre dossier et s\u2019appuyer sur un cadre que la CNDP accepte, et le fournisseur du SDK est votre sous-traitant, ce qui suppose un contrat et des engagements de s\u00e9curit\u00e9. Les conditions \u00e9voluent, v\u00e9rifiez la proc\u00e9dure applicable sur le site de la CNDP plut\u00f4t que de vous fier \u00e0 un vieux mod\u00e8le de dossier.<\/p>\n<p>Le sujet SDK tiers et donn\u00e9es personnelles se v\u00e9rifie concr\u00e8tement, pas sur d\u00e9claration : faites tourner le binaire derri\u00e8re un proxy d\u2019inspection et regardez les domaines contact\u00e9s au tout premier lancement. Notez aussi que le choix de la pile technique change la liste \u00e0 auditer, puisqu\u2019un projet Flutter ou React Native tire des plugins communautaires que personne n\u2019a relus, l\u00e0 o\u00f9 un projet <a href=\"https:\/\/arrowlancer.ma\/blog\/fr\/application-native-ou-flutter-maroc-2026\/\">natif ou Flutter<\/a> ne pose pas les m\u00eames questions de d\u00e9pendances.<\/p>\n<h2>Le token de notification push, la donn\u00e9e personnelle qu\u2019on oublie<\/h2>\n<p>Pour envoyer une notification, l\u2019application s\u2019enregistre aupr\u00e8s de Firebase Cloud Messaging ou d\u2019APNs et re\u00e7oit un token. Ce token identifie une installation pr\u00e9cise sur un appareil pr\u00e9cis. D\u00e8s que vous le rangez dans votre base \u00e0 c\u00f4t\u00e9 d\u2019un identifiant client, d\u2019un num\u00e9ro de t\u00e9l\u00e9phone ou d\u2019un historique de commandes, le sujet des notifications push donn\u00e9es personnelles cesse d\u2019\u00eatre th\u00e9orique : vous d\u00e9tenez un identifiant rattach\u00e9 \u00e0 une personne.<\/p>\n<p>Ce qui se passe en pratique est toujours le m\u00eame. La table des tokens grossit, personne ne la purge, et elle finit par contenir des installations d\u00e9sinstall\u00e9es depuis deux ans avec leur profil associ\u00e9. La logique de conservation est celle de n\u2019importe quelle autre donn\u00e9e, et les <a href=\"https:\/\/arrowlancer.ma\/blog\/fr\/conservation-donnees-cndp-maroc-2026\/\">dur\u00e9es de conservation attendues par la CNDP<\/a> s\u2019appliquent aussi \u00e0 cette table que personne ne regarde.<\/p>\n<p>Trois corrections suffisent la plupart du temps : supprimer le token \u00e0 la d\u00e9connexion et \u00e0 la suppression de compte, purger les tokens que FCM vous signale comme invalides, et s\u00e9parer les notifications de service (commande exp\u00e9di\u00e9e, rendez-vous confirm\u00e9) des notifications marketing, qui rel\u00e8vent du consentement et doivent \u00eatre d\u00e9sactivables dans l\u2019application elle-m\u00eame, pas uniquement dans les r\u00e9glages du t\u00e9l\u00e9phone.<\/p>\n<h2>Biom\u00e9trie et localisation continue : le r\u00e9gime le plus strict<\/h2>\n<p>Deux choses que les devis confondent r\u00e9guli\u00e8rement m\u00e9ritent d\u2019\u00eatre s\u00e9par\u00e9es. Utiliser Face ID ou l\u2019empreinte via l\u2019API syst\u00e8me pour d\u00e9verrouiller l\u2019app, c\u2019est demander au syst\u00e8me d\u2019exploitation de r\u00e9pondre oui ou non : le gabarit ne quitte jamais l\u2019enclave s\u00e9curis\u00e9e de l\u2019appareil et vous ne le recevez jamais. Construire votre propre reconnaissance faciale, par exemple un onboarding avec selfie compar\u00e9 \u00e0 la photo de la CIN, c\u2019est collecter et traiter un gabarit biom\u00e9trique sur vos serveurs.<\/p>\n<p>Le second cas change de cat\u00e9gorie. Biom\u00e9trie et loi 09-08, c\u2019est le terrain de l\u2019autorisation pr\u00e9alable de la CNDP et non de la d\u00e9claration ordinaire, avec une instruction qui porte sur la finalit\u00e9, les mesures de s\u00e9curit\u00e9, la dur\u00e9e de conservation du gabarit et les alternatives propos\u00e9es \u00e0 l\u2019utilisateur. Le suivi de localisation en continu de salari\u00e9s ou de livreurs rel\u00e8ve d\u2019une vigilance comparable, avec en plus la dimension droit du travail. Avant de chiffrer ce type de fonctionnalit\u00e9, v\u00e9rifiez le formulaire et les d\u00e9lais en vigueur sur le site de la CNDP : c\u2019est souvent ce poste qui d\u00e9cale une date de lancement.<\/p>\n<h2>Ce que les stores exigent d\u00e9j\u00e0, et ce qui d\u00e9passe leurs formulaires<\/h2>\n<p>Apple impose une fiche App Privacy, Google Play un formulaire Data safety, et les deux exigent une URL de politique de confidentialit\u00e9 accessible. Google r\u00e9clame en plus un \u00e9cran explicite pour la localisation en arri\u00e8re-plan, et les deux stores demandent d\u00e9sormais un parcours de suppression de compte accessible depuis l\u2019application. Ces formulaires restent d\u00e9claratifs : personne ne v\u00e9rifie ligne \u00e0 ligne ce que vos SDK envoient r\u00e9ellement.<\/p>\n<p>Ce qu\u2019ils ne couvrent pas du tout : la formalit\u00e9 CNDP elle-m\u00eame, la base de chaque traitement, les dur\u00e9es de conservation, l\u2019identit\u00e9 du responsable de traitement, les modalit\u00e9s d\u2019exercice des droits d\u2019acc\u00e8s, de rectification et d\u2019opposition, et les contrats avec vos sous-traitants. Remplir s\u00e9rieusement la fiche Apple est un bon exercice de cartographie, mais la confondre avec la conformit\u00e9 marocaine est une erreur fr\u00e9quente. La <a href=\"https:\/\/arrowlancer.ma\/blog\/fr\/publier-application-mobile-maroc-app-store-play-store\/\">pr\u00e9paration d\u2019une soumission en store<\/a> et la pr\u00e9paration du dossier CNDP sont deux chantiers parall\u00e8les, qui ne se valident pas au m\u00eame endroit.<\/p>\n<h2>Ce que couvre un audit CNDP application mobile avant publication<\/h2>\n<p>Sur une app de taille raisonnable, le travail tient entre une demi-journ\u00e9e et deux jours. L\u2019ordre des \u00e9tapes compte plus que les outils.<\/p>\n<ol>\n<li>Extraire la liste r\u00e9elle des permissions du manifeste Android et de l\u2019Info.plist iOS, puis rattacher chacune \u00e0 un \u00e9cran pr\u00e9cis. Tout ce qui n\u2019a pas d\u2019\u00e9cran associ\u00e9 sort du projet.<\/li>\n<li>Lister les d\u00e9pendances avec leur version et isoler celles qui ouvrent une connexion r\u00e9seau.<\/li>\n<li>Lancer l\u2019app derri\u00e8re un proxy d\u2019inspection et relever les domaines contact\u00e9s au premier d\u00e9marrage, avant que l\u2019utilisateur n\u2019ait accept\u00e9 quoi que ce soit. C\u2019est l\u2019\u00e9tape qui surprend le plus les \u00e9quipes de d\u00e9veloppement.<\/li>\n<li>Construire la cartographie : donn\u00e9e collect\u00e9e, finalit\u00e9, base, destinataire, pays d\u2019h\u00e9bergement, dur\u00e9e de conservation.<\/li>\n<li>En d\u00e9duire le r\u00e9gime applicable, d\u00e9claration ou autorisation pr\u00e9alable selon la nature des donn\u00e9es et des transferts.<\/li>\n<li>R\u00e9diger les \u00e9crans d\u2019information et de recueil du consentement dans l\u2019app, en fran\u00e7ais et en arabe si votre audience le justifie, et pas seulement une politique de confidentialit\u00e9 renvoy\u00e9e vers un lien externe.<\/li>\n<\/ol>\n<p>Le raisonnement est celui de la <a href=\"https:\/\/arrowlancer.ma\/blog\/fr\/conformite-cndp-site-web-maroc-2026\/\">conformit\u00e9 CNDP d\u2019un site web<\/a>, avec deux diff\u00e9rences : le nombre de points de collecte est bien plus \u00e9lev\u00e9, et une bonne partie reste invisible depuis l\u2019interface.<\/p>\n<h2>La checklist \u00e0 exiger de votre prestataire avant de signer<\/h2>\n<p>Ces points se n\u00e9gocient au devis, pas \u00e0 la recette. Les faire entrer dans le p\u00e9rim\u00e8tre initial ne co\u00fbte presque rien ; les ajouter apr\u00e8s coup se paie en jours de d\u00e9veloppement.<\/p>\n<ul>\n<li>La liste des permissions demand\u00e9es, avec une justification \u00e9crite, annex\u00e9e au cahier des charges.<\/li>\n<li>L\u2019inventaire des SDK tiers pr\u00e9vus, nomm\u00e9s dans le devis, plus une clause interdisant d\u2019en ajouter un nouveau sans votre accord \u00e9crit.<\/li>\n<li>Un rapport de capture r\u00e9seau fourni avant la soumission en store.<\/li>\n<li>La cartographie des traitements livr\u00e9e en fin de projet, dans un format que vous pouvez maintenir vous-m\u00eame.<\/li>\n<li>Qui r\u00e9dige et d\u00e9pose le dossier CNDP, et si cette prestation est incluse ou factur\u00e9e s\u00e9par\u00e9ment.<\/li>\n<li>La suppression de compte avec effacement effectif en base, tokens de notification et sauvegardes compris.<\/li>\n<li>La propri\u00e9t\u00e9 des comptes d\u00e9veloppeur Apple et Google, du projet Firebase et des cl\u00e9s de signature.<\/li>\n<li>Les engagements de s\u00e9curit\u00e9 : chiffrement en transit et au repos, rotation des cl\u00e9s d\u2019API, aucun secret en dur dans le binaire.<\/li>\n<\/ul>\n<h2>Questions fr\u00e9quentes<\/h2>\n<h3>Faut-il une formalit\u00e9 CNDP distincte pour l\u2019app si le site est d\u00e9j\u00e0 d\u00e9clar\u00e9 ?<\/h3>\n<p>Dans la plupart des cas oui, parce que la formalit\u00e9 porte sur un traitement et ses finalit\u00e9s, pas sur un support. Si l\u2019application cr\u00e9e de nouvelles collectes (localisation, notifications, biom\u00e9trie) ou de nouveaux destinataires, le r\u00e9c\u00e9piss\u00e9 existant ne les couvre pas. Relisez la port\u00e9e exacte de ce que vous avez d\u00e9clar\u00e9 avant de conclure.<\/p>\n<h3>Le consentement affich\u00e9 par iOS ou Android suffit-il ?<\/h3>\n<p>Non. Le dialogue syst\u00e8me ouvre un acc\u00e8s technique \u00e0 une ressource de l\u2019appareil. La loi 09-08 attend en plus une information claire sur la finalit\u00e9, les destinataires, la dur\u00e9e et les droits de la personne, ainsi qu\u2019un moyen de revenir sur son choix. Concr\u00e8tement, cela se traduit par un \u00e9cran d\u2019explication affich\u00e9 juste avant la demande de permission.<\/p>\n<h3>Peut-on utiliser Firebase pour une application marocaine ?<\/h3>\n<p>Beaucoup d\u2019apps marocaines l\u2019utilisent. Cela implique un h\u00e9bergement hors du Maroc, donc un transfert transfrontalier \u00e0 traiter dans votre dossier, un contrat de sous-traitance avec le fournisseur, et une configuration volontairement r\u00e9duite : d\u00e9sactiver la collecte automatique d\u2019\u00e9v\u00e9nements dont vous n\u2019avez pas l\u2019usage, et interdire l\u2019envoi d\u2019identifiants directs dans les logs de crash.<\/p>\n<h3>\u00c0 quel moment faire cet audit dans le projet ?<\/h3>\n<p>Au cadrage, pas \u00e0 la recette. Retirer un SDK d\u2019attribution ou revoir un flux biom\u00e9trique apr\u00e8s le d\u00e9veloppement co\u00fbte plusieurs jours, et la correction tombe toujours au pire moment, juste avant la soumission en store.<\/p>\n<h2>O\u00f9 cet audit se place dans un projet mobile<\/h2>\n<p>Chez Arrowlancer, la cartographie des permissions, des SDK tiers et des flux de localisation ou de biom\u00e9trie fait partie du cadrage de chaque application iOS, Android, Flutter ou React Native que nous d\u00e9veloppons, avant que les int\u00e9grations ne soient fig\u00e9es. Le p\u00e9rim\u00e8tre du p\u00f4le mobile figure parmi <a href=\"https:\/\/arrowlancer.ma\/fr\/#services\">nos services<\/a>. Si vous pr\u00e9parez un lancement ou une refonte, <a href=\"https:\/\/arrowlancer.ma\/fr\/#contact\">\u00e9crivez-nous<\/a> avec la liste des permissions que votre app demande aujourd\u2019hui : c\u2019est le point de d\u00e9part le plus utile d\u2019une discussion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Permissions syst\u00e8me, SDK Firebase ou Facebook, token de notification : o\u00f9 partent r\u00e9ellement les donn\u00e9es de votre app mobile, et ce que la loi 09-08 exige.<\/p>\n","protected":false},"author":0,"featured_media":247,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[207,43,257,249,88,930],"class_list":["post-245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-application-mobile","tag-cndp","tag-conformite","tag-loi-09-08","tag-maroc","tag-sdk-tiers"],"_links":{"self":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":1,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":248,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/245\/revisions\/248"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media\/247"}],"wp:attachment":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}