identifierForVendor returns 00000000-0000-0000-0000-000000000000 on some devices

Originator:syncluz
Number:rdar://12377282 Date Originated:2012-09-26
Status:Closed Resolved:
Product:iOS Product Version:iOS6
Classification:High Reproducible:Always
 
26-Sep-2012 07:31 PM Lukas Zeller:
Summary:

the new iOS API to obtain a vendor specific unique ID, the "identifierForVendor" method of UIDevice, returns a non-unique ID of 00000000-0000-0000-0000-000000000000 on some devices.

Steps to Reproduce:

  UIDevice *theDevice = [UIDevice currentDevice];
  NSUUID *ifv = [theDevice identifierForVendor];
  NSString *deviceID = [ifv UUIDString];
  NSLog(deviceID);

Expected Results:

An unique identifier for the device/vendor combination

Actual Results:

On some devices this returns a completely bogus ID of

  00000000-0000-0000-0000-000000000000

Two of my own devices (an iPhone4 and a iPhone4S) are affected, another (a iPad 3rd Gen) is not.

In the few hours since I detected this problem (which has catastrophic consequences for my customers, see below) I have collected logs from 5 customers from all over the world, with iPhones and iPads which exhibit the same behaviour.

The behaviour is 100% reproducible on affected devices, among different apps (my real apps and the test app as attached to this bug report)

Regression:

no reliable device identifier in iOS - UUID is deprecated and identifierForVendor seems severely unreliable.

Notes:

I created a minimal app to test the behaviour.

This is catastropic for apps like mine, which implement a open protocol which MANDATES a unique device identifier (SyncML in my case). Non-unique IDs may mess up data on the server side.

I am hugely disappointed as the switch from UDID to identifierForVendor has cost me and especially my customers a lot of headake already, because a device which changed ID is not something the designers of the SyncML standard thought would happen. But widespread collision of IDs is really disastrous!!! 

26-Sep-2012 07:31 PM Lukas Zeller:
'identifierForVendor000000000000000.zip' was successfully uploaded
(For openRadar: get the sample app here: http://www.plan44.ch/downloads/identifierForVendor000000000000000.zip

Comments

It seems, like with the advertising identifier, that only devices which received the iOS6 update OTA are affected. Devices updated via XCode/iTunes or iPhone5 devices shipped with iOS6 installed do not have that problem.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!