Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to generate Unique ID of device for iPhone/iPad using Objective-c

I wanted to know that How to generate Unique ID of device for iPhone/iPad using Objective-c

so that once application is installed on device , so we should track that deviceID

  • I have searched to retrieve IMEI of iPhone/iPad , but it is not allowed in objective-c.

  • Then I searched to generate UDID of iPhone/iPad but it is generating for different ID each time I launched it on simulator .

like image 547
Poonam K. Avatar asked Dec 07 '16 11:12

Poonam K.


1 Answers

Yes, UDID is deprecated; we are not allowed to get UDID due to user privacy purposes. Apple does not allow to get any identifiers that uniquely identifies a device, such as IMEI, MAC address, UDID etc.

UUID is the best way to go as of now. But that would be unique for each vendor. You are not assured that it will be unique each time you get the UUID string. Best bet is to store the UUID string to phone's Keychain and retrieve it when needed, with a catch. When you factory-reset your phone, the keychain items would be erased. This limitation should be kept in mind.


UPDATE - IN IOS 10.3 BETA'S:

It seems that Apple has made some changes to how Keychain works in iOS 10.3+. Keychain items stored in the Keychain will be deleted when the all the apps from the specific vendor are uninstalled. According to Apple, the residence of sensitive information of an app even after the app is gone from the device may lead to security risks, so they decided to forbid this kind of behavior.

Developers relying on Keychain storage even after an uninstall for their apps can make use of this WORKAROUND to continue with the intended functionality. According to this workaround, any app can access the information stored in that specific Keychain Access Group, so it is recommended that adding an extra layer of encryption to your data will protect it with even more security, although keychain encrypts items by default.


UPDATE - IOS 10.3.3 (STABLE): It seems that the keychain items deletion was a BUG in early betas of iOS 10.3.3 and was fixed later in the stable release. This might have been caused during betas since strange things can happen during that phase. It should be no problem to use Keychain hereafter.

like image 103
badhanganesh Avatar answered Oct 14 '22 03:10

badhanganesh