UUID for ios device - ibm-mobilefirst

I am using IBM MFP version 8 and cordova device plugin. On the IBM console, I see that my device is register with a device Id. However, I getting a different value when I execute device.uuid..
How can I get the same id that is store in MFP
Product version: 8.0.0.00-20170220-1900
Thanks

The device ID generated by MobileFirst is not same as the value you obtain when you execute device.uuid API using cordova-plugin-device.
If you wish to store unique ID for each device in MFP, you can use getDeviceDisplayName and setDeviceDisplayName APIs to retrieve and store the unique names/ID.
More details about API's can be found here.

Related

Is there a way to we customize directupdate check version on mobilefirst?

Today we have an app in applestore with a version labeled as 7.6.2 and internal build number as 1.0.0. We are using mobilefirst 7.1 to develop. Problem is that now we have a new app, that is 7.6.2.1, but we would like to know if is possible continue to use 7.6.2 app from applestore onto 7.6.2.1 mobilefirst app (asking it because we would like to keep our customers using just a single app from applestore). We also have an app on google play and would like to apply same idea.
Maybe this is an edge case, so do we have a way to control this directupdate by ourselves?
Customization of direct update is limited to the UI and options when you receive a direct update push.
As for version management, if both versions 7.6.2 and 7.6.2.1 are deployed in the MFP server, end users can have these versions deployed on their devices. Direct update or other configurations can be separately configured for these different versions.
However, if an end user is on v 7.6.2 and they take an update from AppStore or Playstore, and the version on the device becomes v7.6.2.1, this updated application on the device will start connecting to only v7.6.2.1 in the server. And only direct updates this version on the device ( 7.6.2.1) will receive are the ones uploaded to 7.6.2.1 in the server.
Direct update feature is meant only to push small web resources changes into your application. If the MFP Application Version numbers for both app versions(i.e 7.6.2 and 7.6.2.1) are different, you can continue to use both the versions and push direct update indvidually based on version number.

React-Native: Get the same unique device ID after reinstalling the application

I’m writing an app in React-Native and need some help concerning identifying the device after reinstalling the application.
What I need:
Get a unique device ID for every device for both Android and iOS.
The same ID should be returned even if the user uninstalls the application and installs it again.
The closest to this I’ve come over is the getUniqueID() method in react-native-device-info. However, a different ID will be returned on iOS if the app is reinstalled since the returned value for this method is related to the vendor.
Have a great day!
Well, if you need it due security purposes (e.g. so nobody is abusing your API or premium content), you are looking for Device Check / App Attestation for iOS and Google Safety Net for Android. By using these libs, you will get a unique device token (on iOS) or attestation (on Android).
When using iOS, you can take this token, and set up two bits on a server hosted directly in Apple by using your own server as a middle-man (as you should not do it directly, from the mobile app).
According to Apple: Apple records the bits for you and reports the bits back to you, but
you’re responsible for keeping track of what the bits mean. You’re
also responsible for determining when to reset the bits for a given
device; for example, when a user sells the device to someone else
Similarly, with Android - you just send attestation from device to server where it will be validated.
To use mentioned libs in React Native, you can either install corresponding libs:
https://github.com/dayitv89/react-native-ios11-devicecheck
https://github.com/rajivshah3/react-native-google-safetynet
plus you will need to implement verification part on your server
or if you are using Firebase libs (e.g. from rnfirebase.io), you can use AppCheck that uses SafetyNet and DeviceCheck / App Attestation underhood and comes also with easy server-side verification (also for non-Firebase resources).
If you need a solution that is focused on pushing data from server to client, you are looking for a push notification token.
Libs:
https://rnfirebase.io/messaging/usage
https://github.com/zo0r/react-native-push-notification
As this token can change over time (by design), you should implement few services that support that / or potentially re-architect your app.
Typically, tokens are stored under the user profile in your backend (or they are linked in some other way to the user that is using the device in the given time).
If you are looking for something else, I think it's not possible.
Don't worry MisseMask,
uniqueID's are always unique for your app bundle ID. There are two uniqueID's for each app.
That is one unique ID for debug version, and another one for release version. So please check your app by install it again and again with debug mode. now you get the same uniqueID. and do this process again with release build
for example:
Debug version uniqueID:
1st install - 3279dhsbqd9yrbceqiqbcv
2nd uninstall and install - 3279dhsbqd9yrbceqiqbcv
3, 4, 5, 6, .... - are same uniqueID
Release version uniqueID:
1st install - dsvfhdfgdf454tdsgsghetuh7j5
2 nd uninstall and install - dsvfhdfgdf454tdsgsghetuh7j5
3, 4, 5, 6, .... - are same uniqueID

Get the version of windows phone app in store

I'm developing a windows phone application. I have a version of my app in windows store. I know how to find the version of package I'm developing, but i want to find programmatically the version of my app in windows store,so i can compare and if the version store is bigger than the version of app user has, i want to make a notification and tell him that a newer version is available.
Thanks in advance!
Beginning with WP8 you can query the Store using windows.applicationmodel.store.listinginformation but sadly this does not include the version.
There is no public Windows Store API that provides this info. So you'd have to either scrape the info yourself or connect to a 3rd party API that provides alreasy scraped data. Solutions outlined here: windows store api to access metro and phone apps information
Wait but why?
If you only need to provide your app the latest version code, just store it in a JSON file hosted on your backend, or alternatively, if you're feeling fancy, create a dedicated webapp that checks for updates.

IBM MobileFirst 7.1.0 WL.Device.getID changes on the same device

mfp -v 7.1.0.00.20160401-2108
wladm -version 7.1.0.00.20160323-1606
WL.Device.getId sometimes returns different id on the same device with app reinstallation or update from Store.
It happens both on Android and iPhone.
It happens only when app is reinstalled (updated), or switched from debug to release.
When installed the ID is persistent.
We use LDAP server where DeviceID is login value. So when ID changes I see the completely new login value from same device.
What could be reason of this behavior?
Background information:
The device id generated by the MobileFirst SDK for android is stored in KeyStore file, and in iOS in keychain file. Both of these are not 100% guaranteed to keep the original stored values in cases such as application uninstallation/reinstallation/upgrade, end-user changing the device security settings or doing a factory reset.
For these reasons it is not a recommended pattern to use the WL.Device.getId value as the principal login value.
The recommended pattern is to use a unique user identity such as email, or username. Please note that future version of MFP may discontinue support for the WL.Device.getId API method.

MobileFirst 7.1 Direct update issue

(1). MobileFirst APP will crash or unstable (sometimes) when the following conditions occur :
We used WL.Client.connect API to trigger direct update at the same time when iOS native code is running (some native process we wrote) .
(2). We found that different version of timestamp will not trigger direct update. for example:
Our MobileFirst console version is 7.1.0.00-20151107-1647.We deployed wlapp(builded by 7.1.0.00-20151107-1647 Studio) to that console.
If the mobile client APP version is 7.1.0.00-20151114-1616 then the direct update won't trigger
Should we make sure that MobileFirst server and client version must be the same?
If so, How to deal with old MobileFirst version APP in Apple store or Google Play to connect new version of MobileFirst server and make sure the direct update , notify and remote disable still work.
If the Studio build that you're using contains fixes/changes to the underlying native component of MobileFirst, then Direct Update may not work. You can see this when building in Studio - you get a warning stating this.
In such cases you will need to up the environment version value in application-descriptor.xml and upload a new .ipa/.apk to the App Store/Google Play.