Udid Officially Killed

How does this Unique device Identifier work?  Will it be reset if the app is uninstalled and re-installed?  Is it consistent between apps (for ad conversions)?

I’ll ask and see how it’s generated.  It should be consistent between Corona SDK Apps and survive a reinstall.

Its generated by md5 hashing the mac address so its consistent between Corona apps and installs.

Beautiful.  Thanks for the official update.

Thanks for the info.

Will there be official support for obtaining the Advertising ID of the device as well?

  • Andrew

Well, since you have come up with an alternative that is effectively the same… What is the chance that Apple reject apps with this implementation?

Does that mean that now (from build 1063) system.getInfo(“deviceID”) returns a string that is md5 hash of the mac address ?

Hey guys, before locking in on the next public Corona release I’d encourage you to consider adding a few things related to the iOS device id:

  1. Expose the new iOS Vendor ID.  The Vendor ID is essentially Apple’s sanctioned way of providing a unique device ID for a developer that works across all of that one developer/vendor’s applications.  This Vendor ID isn’t ideal, of course, because if a user removes all of a vendor’s applications then they’ll have a new Vendor ID next time they install an app.  But we likely need to conform to Apple’s desires on this front soon anyway.

  2. Expose the new iOS Advertising ID.  The Advertising ID is Apple’s new standard for working with ad networks.  Having this will allow Corona developers to easily work with different ad providers under Apple’s new standard.

  3. Provide a method to access the deprecated UDID, with the clear caveat that apps only have one month left where they can submit to Apple with this.  Cutting over to the MAC address - or, MD5(mac) - might be difficult for some developers who have been using UDID to uniquely identify their users from server-side APIs.  I’ve been doing that (even though now that was clearly a bad design decision on my part) so I can’t simply upgrade to the latest daily build and provide my users continuity.  Luckily, I’m an Enterprise developer so I can submit app updates this week that bridge access to the deprecated UDID along with a new device ID method so I can make sure my apps’ users don’t get logged out.  But I bet there are a decent number of non-Enterprise developers in this same boat.

Thanks

We have plans around #1 and #2.  There are some issues with different iOS versions but we’ll try to mitigate those as much as possible while we also strive to be as cross-platform as possible.

Unfortunately, #3 isn’t an option as Apple uses static analysis to determine whether an app can access the UDID, not a runtime analysis of whether it actually does so (when you think about it, checking for the latter would be impossible) so we have to ship a public release that doesn’t reference that interface at all.  Which is what we did today.

Got it, thanks Perry.  That makes complete sense on #3 then.

I’ll look forward to Vendor & Advertising ID support soon.

Does anybody know for sure; isn’t UDID still used for getting a developer provisioning profile?  I.e., I want a co-worker to test my apps, so I still build with their UDID registered in the app profile, correct?

Thanks!
Daniel

Hi there,

Yes, there’s no problem using UDID to provision different devices for development builds of your apps.  The restriction is only about accessing the UDID at runtime from your code.

  • Andrew

For iOS the system.getInfo(“deviceID”) should be changed from UDID to MAC address. There is no other unique identifier available that is truly system wide. Using an MD5 hash of the MAC address is insufficient as it is not the true value of the device, just something Corona has come up with, so it’s not compatible with advertisers and such which are switching to MAC address (not the hash of it).

Any updates on Vendor ID and Advertiser ID support?

Some (web-based) advertisers are asking me to switch to Advertiser ID (used to be UDID of course). I am unable to comply with that since there is no API to access the Advertiser ID. I’ll have to choose between updating and not supporting certain ad networks if this isn’t fixed.

Have you contacted Apple about using the MAC address as a UDID replacement?  My employer (was W3i, now renamed to NativeX) got a call directly from Apple developer relations when they announced they were going to use MAC address ( http://techcrunch.com/2011/10/28/w3i-suggests-ios-developers-use-mac-address-as-udid-replacement/ ).  Needless to say, Apple was not thrilled with that announcement.   Also, another company (that I’m not sure if I can name) had a discussion with Apple’s App Review Team that indicated the UDID rules may apply to MAC Address as well.

Apple really wants developers to use the ASIdentifierManager properties for vendor and advertiser because they can be reset by the user (to avoid unwanted tracking).  

It would be very helpful to get an official statement from Corona on this. It seem many of us are working to integrate some ad networks directly in Lua using those networks’ REST APIs, but some require the iOS Advertising ID. I imagine it would be a simple matter to expose that to us in Lua. Thanks! - Andrew

Check out Daily Build 1095 for support for Apple’s advertising IDs … the following new system.getInfo() options are available:

" iosAdvertisingIdentifier" On iOS, returns the “advertisingIdentifier” for use in advertising logic.

" iosAdvertisingTrackingEnabled" On iOS, returns the value of “advertisingTrackingEnabled” for use in advertising logic.

" iosIdentifierForVendor" On iOS, returns the value of “identifierForVendor” for use in advertising logic.

Let me know what you think.

When will daily build 1095 be released?  It’s not in the Daily Builds page.

Let me email the team and find out.