LaunchLint Academy

La réponse courte
- Toute valeur livrée au client mobile doit être considérée lisible. `.env`, EAS Secrets ou obfuscation ne protègent pas une valeur intégrée.
- Séparez identifiants publics et credentials privés, déplacez les privilèges au serveur et faites tourner tout secret exposé.
- Cette checklist n'est pas un exercice unique. Exécutez-la avant le premier upload, après chaque changement pertinent de dépendance ou configuration et juste avant la publication. Développement, produit et responsable de la console évaluent le même build. Les signaux statiques sont reproductibles, mais ne prouvent ni le runtime ni les réponses backend. Ajoutez des tests de l'artefact signé, les déclarations officielles et une décision tracée.
1. Inventorier les secrets
Listez clés, credentials, tokens, signature et identifiants avec responsable.
Traitez inventorier les secrets comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de inventorier les secrets identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
2. Examiner l'historique
Cherchez code, configuration, CI, exemples, assets, patches et Git.
Traitez examiner l'historique comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de examiner l'historique identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
3. Séparer build et runtime
Un secret reste serveur seulement s'il n'est jamais écrit dans le client.
Traitez séparer build et runtime comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de séparer build et runtime identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
4. Traiter les variables publiques
`EXPO_PUBLIC_` et équivalents sont lisibles dans le bundle.
Traitez traiter les variables publiques comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de traiter les variables publiques identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
5. Déplacer les privilèges
Clés privées et actions admin passent par un backend authentifié.
Traitez déplacer les privilèges comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de déplacer les privilèges identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
6. Limiter les clés publiques
Restreignez par identité, domaine, API, quota et environnement.
Traitez limiter les clés publiques comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de limiter les clés publiques identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
7. Faire tourner et analyser
Révoquez, remplacez et inspectez l'usage ; cacher le nom ne suffit pas.
Traitez faire tourner et analyser comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de faire tourner et analyser identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
8. Automatiser le gate
Combinez motifs, entropie, allowlist et examen humain.
Traitez automatiser le gate comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.
Preuves de validation de la release
- État de production de automatiser le gate identifié
- Fichier ou champ responsable relié
- Contrôle rejoué sur un appareil propre
- Écarts iOS et Android documentés
- Chaque question a responsable et date
- Preuve sans secret ni donnée personnelle
Questions fréquentes
`.env` est-il sûr ?
Non si la valeur arrive dans le client.
EAS Secrets protège-t-il ?
Le build, pas une valeur intégrée.
L'obfuscation suffit-elle ?
Non. Elle ne gère pas les secrets.
Que faire après découverte ?
Révoquer, remplacer, enquêter et repenser.