UDID For Enterprise App

Hello,


We are developing an Enterprise App for our organisation. We need to implement the authentication method using IMEI No. of the device. So is is possible to get the device IMEI No from code in XCODE for Enterprise development?


If IMEI is not possible can we get Device UDID for Enterprise development? We know that previously we were able get the UDID of a device now it is Vendor ID. But we need UDID which is combination of 40 char for our enterprise app.


So is there any api to get IMEI or UDID from code (Objective-C and Swift)?


Thanks.

So is there any api to get IMEI or UDID from code (Objective-C and Swift)?

No. However, this information is available via MDM so you can assemble an indirect solution. For example:

  1. Use MDM to get the UDID and IMEI of the device

  2. Create a record in your device database with that information

  3. Generate a random unique ID and add that to your device database

  4. Use managed app preferences to push that unique ID to your app

  5. Your app can then add that unique ID to requests and you can look up the info you need based on that

If necessary you could make step 5 a web service that returns the UDID or IMEI to your app, but IMO it’s better to avoid that because it limits the scope of this PII.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi Quinn,


Are there any reasons to not use the UDID itself instead of making a new unique ID?

This would be a lot easier since you can use the UDID variable in Profile Manager when configuring app preferences:

  1. Use MDM to get the UDID of the device.
  2. Create a record with that information in your device database.
  3. Use managed app preferences to push the UDID of the device to the device (this could then be done with the %UDID% variable).
  4. Your app can then add that UDID to requests.

Are there any security related issues with the solution above?


Best regards,

Jens Nilsson

Are there any reasons to not use the UDID itself instead of making a new unique ID?

Yes. The UDID is a fixed value that’s tied to the hardware and can never change. It’s best not to propagate that value any further than you have to. If your app doesn’t absolutely need to know the UDID — and it’s hard to imagine why it should because you can’t actually use the UDID for anything useful on the device — then you should not give it that value.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"
UDID For Enterprise App
 
 
Q