Is it safe to use a react-native-device-info unique ID? From what I can understand it will always remain unique for both iOS and android no matter how many times the app will be uninstalled.
If not kindly suggest what else we can use to uniquely identify the device since I want to make sure every user login with a separate device.
const uniqueId = DeviceInfo.getUniqueID();
// iOS: "FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9"
// Android: "dd96dec43fb81c97"
Notes
iOS: This is IDFV so it will change if all apps from the current apps
vendor have been previously uninstalled. android: Prior to Oreo, this
id (ANDROID_ID) will always be the same once you set up your phone.
I was doing SDK for analysts, which generates billions of events every day and I can find the following.
For iOS:
IDFV - changes after user re-install app(if user had only one your app).
I recommend to use next form: currentTimeInMilliseconds_IDFV and save this to KeyChain. KeyChain is updated only after user reset the device to the factory settings.
For Android:
Android don't have a cool version.
I recommend to use form: android.os.Build.SERIAL_Settings.Secure.ANDROID_ID.
Each argument aren't unique and one million devices have about 100 repeats.
But sorry, I don't have example for react native, if you need an example I can search later.
Related
I'm working react native project.
I'd like to know how to get uuid of mobile and keep it on firestore.
I've tried to do it using anonymous uuid in firestore. However, this one wasn't solution cause if an user remove an app and re-install the app, then uuid is changed.
So, I need to keep immutable uuid.
If you have any of idea, please let me know.
Thanks!
I think that keeping the UUID the same after the user has removed the app and reinstalled is impossible. From ios docs: "The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. ", and from Android docs: "The value may change if a factory reset is performed on the device or if an APK signing key changes".
I want to show notification when new post available in react native app.
when ever my app open it fetch latest PostID{POSTID is auto increment in online database} and save the latest PostID in Mobile database.
But now if App close it should check in background by fetching after every 15min about new postID and compare it with the saved PostID.
If saved PostID is smaller then received PostID then it should show notification of new post.
you could use react-native-firebase, it encapsulate Local notifications feature since version 4+...
Problem: this version is only compatible with Gradle 3+, which React Native doesn't support yet (RN 0.56 still runs with gradle 2.3.3)
An alternative in the meantime is - react-native-fcm' - they're dropping development in favor of react native firebase, but has the feature you want.
You could even copy/paste the code you need if you don't want the whole 3rd party lib...
I've been able to distinguish between the live build and the test build on my Android app. Everything works perfectly on the test version. I can see the live events and when I go and see the number of clicks for an event, that gets updated too. However, on the live build of my app, I can see the live events but the number of clicks is not being updated. All the events still show empty analytics. What could be wrong?
Amruta from Branch.io here:
Based on your description it looks like your App is still using the test key. If your App has both the Live and Test key added to the Manifest, and you have the debug mode enabled, your App will continue using the Test key. You should make sure that your App is using the Live key.
You can ensure that your app is using the Live key by using a Branch link from the Live version of your App. On clicking on the link, the link parameters received in the callback should have the parameter '+clicked_branch_link: true'.
If the parameter 'clicked_branch_link' is set to false it means that your App is still using the test key.
If you still continue to face issues, I would suggest writing to integrations#branch.io and they can help you resolve any issues you are facing.
I recently released a new build of an app to the app store a bit ago. On iTunes connect I set the name which is displayed on the dashboard and in the app store, but when downloaded on a device, the name is the same as the original Xcode project on my computer. What is up with that? Is there something in the plist I need to change?
Many thanks.
AFAIK, you have to change the bundle name in info.plist. It's default is $(PRODUCT_NAME). And this product name is the one you put while creating the app in XCode at the beginning.
The App Store data is taken from the info you uploaded in iTunesConnect.
Also, if this varies widely then your app might got rejected. Check the guideline 3.4. About 2% of apps get rejected for this, check here.
The name that should be displayed on the device itself is defined on the plist in XCode in the Bundle Display Name field. The name that's displayed on the App Store is defined on iTunesConnect in the App Name field.
The two fields don't affect one another but they should be similar enough so that Apple's review team won't reject the app.
Since days I am trying to change my app state from beta to release so that everyone can get it.
I also figured out that I cant change other things (prince, release automatcially...)
Do I need to add a new app? Cant I change this informations by a new revision?
I am sure I am just to stupid but I am at the point to create a new app in the app center just to change this information.
It is not possible to change an app from being a beta version to being in the public store. You must resubmit the app for it to be visible in the store and change other settings (such as price).
There is a uservoice request for this functionality that you can vote on at http://wpdev.uservoice.com/forums/110705-dev-platform/suggestions/4548415-allow-beta-to-release