react-native-vendor-id
v0.2.0
Published
Developer-scoped device identifier shared across all your apps on iOS and Android.
Maintainers
Readme
react-native-vendor-id
Developer-scoped device identifier shared across all your apps on iOS and Android.
One identifier, same value in every app you publish on a given device, and different for every other publisher — so you can recognise a device across your own apps without asking the user to sign in.
| Platform | Identifier | Scope |
| -------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| iOS | identifierForVendor | Apps sharing a bundle prefix and dev team |
| Android | App set ID | Apps published by the same Play account |
Both reset once all of your apps are uninstalled from the device, so the two platforms behave the same way.
Installation
npm install react-native-vendor-idUsage
import { getVendorId } from 'react-native-vendor-id';
const { id, isShared } = await getVendorId();id is always a string — the call never resolves null and never rejects on a native
platform.
isShared tells you whether the id really is the same in your other apps. On Android it is
true only when the app was installed from Google Play, which is what lets Play attribute
the install to your developer account. A sideloaded build still returns a valid-looking id,
but one that is scoped to that single app — so check this flag before relying on the id to
match across apps, and expect false in local adb install builds. Play internal and
closed testing tracks count as Play installs.
When the platform identifier cannot be read at all, the id falls back to a random UUID kept
in NSUserDefaults / SharedPreferences, and isShared is false. The real identifier is
read on every call, so a device only uses the fallback for as long as the real one is
unavailable. In practice this happens on Android devices without Google Play services, where
the app set ID cannot be read.
Contributing
License
MIT
Made with create-react-native-library
