SDK React Native + Expo
Le SDK officiel Pionne pour React Native et Expo. Auto-capture des erreurs JS, natives iOS/Android, et Hermes. Compatible Expo managed et bare workflow.
Version actuelle : 0.8.6
Installation
Section intitulée « Installation »npm install @pionne/react-nativeInit basique
Section intitulée « Init basique »import { Pionne } from '@pionne/react-native';
Pionne.init({ token: 'pio_live_…' });Désactiver le SDK en dev
Section intitulée « Désactiver le SDK en dev »Pour ne pas polluer ton dashboard prod avec les events que tu génères en Metro / Expo Go (et éviter le casse-tête du bundle ID mismatch entre host.exp.Exponent et le bundle pinné sur ton projet), passe enableInDev: false :
Pionne.init({ token: 'pio_live_…', enableInDev: false, // no-op en __DEV__});En __DEV__, l’init log [Pionne] Skipped in __DEV__ (enableInDev=false) et toutes les méthodes (captureException, captureMessage, setUser, etc.) deviennent silencieuses pour la durée du process. Aucun handler global installé, aucune session ouverte. Comportement par défaut : enableInDev: true (rétrocompat).
Documentation détaillée
Section intitulée « Documentation détaillée »Cette page est un alias vers la documentation principale du SDK React Native. Les guides complets sont déjà disponibles :
- Quickstart — 5 minutes pour intégrer Pionne
- Installation — setup avancé, Expo vs bare
- API du SDK — référence complète des méthodes
- Auto-capture — ce qui est capturé sans config
- Breadcrumbs — fil d’Ariane des actions
- Error Boundary — composant React de capture
- Screenshots — capture visuelle au crash
- PII — scrubbing des données personnelles
- Source maps — symbolication des stacks Hermes
Géographie (opt-in)
Section intitulée « Géographie (opt-in) »Pionne peut afficher la ville/région/pays approximatif de l’utilisateur sur chaque event, comme Sentry. Désactivé par défaut pour la vie privée :
Pionne.init({ token: 'pio_live_…', sendGeography: true, // ← opt-in});Au boot, un seul appel HTTP vers https://ipapi.co/json/ (timeout 4 s) résout contexts.geo = { city, region, country, country_code } et le résultat est attaché à tous les events suivants. Aucune permission iOS/Android requise (pas de GPS, juste l’inverse-DNS de l’IP). Si le lookup échoue, le SDK continue sans géo.
Tu peux remplacer le fournisseur via geographyEndpoint: '…' — toute URL renvoyant un JSON { city, region, country, country_code } fonctionne.
Anti-token-theft
Section intitulée « Anti-token-theft »Le bundle ID (com.tonapp.app) est auto-pinné côté serveur au premier event reçu. Si quelqu’un vole ton token et l’utilise depuis une autre app, les events sont rejetés automatiquement.
Voir aussi
Section intitulée « Voir aussi »- SDK Web — pour les apps browser pures
- SDK Node.js — pour les backends Node
- API Ingest — protocole HTTP brut