iOS openUDID produces Build Error 5 on Mac

My previous topic post about a unique “consistent” identifier, even after installs and uninstalled and reinstalls was SOLVED FOR ANDROID - but NOT for iOS.

Does ANYONE have any ideas about how to get a consistent identifier from an iOS device in Corona?

For iOS, I have just verified that I cannot include the openUdid plugin. When I attempt to create an iOS build on the Mac, I get the message “Unexpected build error. Error code: 5…” - the message has some nonsense about connecting directly without a proxy server, which I am not using. But I have confirmed 5 different times that removing the plugin allows the build to complete. Corona simple will not create a build with the openUdid plugin - this should be documented in the API page as no longer working.

After much research, I have realized that with iOS 6, Apple introduced two new properties in the UIDevice family, similar in nature to the “deprecated” UDID.  That’s right, Apple will no longer allow anyone to use the UDID. Even though the open source OpenUDID solution which was implemented by Corona is no longer supported - I get a Build error #5 in Corona now.

The two new similar options to use are:

  1. system.getInfo(“identifierForVendor”) – this option is supported by Corona and is the only option for iOS determination for NON-ADVERTISING companies.

  2. in thte ASIdentifierManager class, identifierForAdvertising is the best option - but misuse of it will likely cause relationship problems with Apple. Misuse is defined as using this identifier for reasons OTHER than ad tracking like using the ID to keep track scores, levels, and other app user behaviors - which is now greatly discouraged by Apple.

In summary, #1 is the best Corona option. From the time a developer’s app is first installed, the IdentifierForVendor will not change so long as that device always has at least one app installed by a given developer. If uninstalled however, and then reinstalled, a new identifierForVendor value will appear - nothing can be done to get around this without risking big problems with Apple, period the end.

I have just confirmed that system.getInfo(“deviceID”) through Corona operates in the same manner as Apple’s “identifierForVendor” as follows:

  1. a new alpha-numeric value is created is created upon initial install

  2. when an App is updated and a new version installed (without uninstalling the previous version), they successfully retain their original value

  3. when an App is uninstalled and then a new version installed, a new alpha-numeric value is created for both

In summary, using system.getInfo(“deviceID”) as developed by Corona behaves in the same manner as Apple’s “identifierForVendor” and therfore, there is no need to use anything but “deviceID” for both Android and iOS Platforms.

After much research, I have realized that with iOS 6, Apple introduced two new properties in the UIDevice family, similar in nature to the “deprecated” UDID.  That’s right, Apple will no longer allow anyone to use the UDID. Even though the open source OpenUDID solution which was implemented by Corona is no longer supported - I get a Build error #5 in Corona now.

The two new similar options to use are:

  1. system.getInfo(“identifierForVendor”) – this option is supported by Corona and is the only option for iOS determination for NON-ADVERTISING companies.

  2. in thte ASIdentifierManager class, identifierForAdvertising is the best option - but misuse of it will likely cause relationship problems with Apple. Misuse is defined as using this identifier for reasons OTHER than ad tracking like using the ID to keep track scores, levels, and other app user behaviors - which is now greatly discouraged by Apple.

In summary, #1 is the best Corona option. From the time a developer’s app is first installed, the IdentifierForVendor will not change so long as that device always has at least one app installed by a given developer. If uninstalled however, and then reinstalled, a new identifierForVendor value will appear - nothing can be done to get around this without risking big problems with Apple, period the end.

I have just confirmed that system.getInfo(“deviceID”) through Corona operates in the same manner as Apple’s “identifierForVendor” as follows:

  1. a new alpha-numeric value is created is created upon initial install

  2. when an App is updated and a new version installed (without uninstalling the previous version), they successfully retain their original value

  3. when an App is uninstalled and then a new version installed, a new alpha-numeric value is created for both

In summary, using system.getInfo(“deviceID”) as developed by Corona behaves in the same manner as Apple’s “identifierForVendor” and therfore, there is no need to use anything but “deviceID” for both Android and iOS Platforms.