Privacy consent
Privacy consent for an Expo app, compared: Consent sheet (GDPR / CCPA), or none - Expo Go support and what each option installs.
Hey - here's how privacy consent works in ReadyNative. This category is a yes/no: does a consent sheet ask before analytics and crash reporting start?
What stays the same either way: the consent store (src/stores/consent.ts, key
readynative:consent), the @/lib/consent contract (consent.get() / useConsent() / set() / setDoNotSell()), and the Settings Privacy card ("Export my data", and "Do not sell or share"
whenever an analytics module is selected) are core. The analytics and crash modules follow the
consent store and only create their SDK clients once their category is consented to, so the SDK
files are identical under both options. Setup picks the option for you - consent when an
analytics or crash module is selected, none otherwise - and bun run setup --consent <option>
overrides it.
- consent - a sheet after onboarding wherever a device locale region or the time zone points
to the EU/EEA, UK, Switzerland, Canada or Brazil (and wherever the device has no region; or
everywhere with
privacy.askEverywhere): one switch per category the build has, "Accept all" or "Only necessary". SDKs stay off there until answered; elsewhere they start on and the Settings switches turn them off. Needsexpo-localization(installed by the module). - none - nothing asks; undecided reads as consented, "Do not sell or share" still turns analytics off. Right when you ship no analytics or crash module (the default preset).
Options
One option per category - --consent <option> picks it:
bun run setup --consent consent