问题
I have a beta tester to whom, 4 months after the last beta test cycle, I sent a new versions' first beta test of an app. When she said that it wouldn't load, we checked her UDID, and it is different than what we used 4 months ago, so my provisioning clearly didn't work.
She says it's the same device used before.
I've yet to further explore what upgrades she might have done or if she (or maybe her child?) has jail-broken it.
Are there any Apple sanctioned actions that would change the UDID on a device?
If you jail break a device, do you need to take further action (e.g., install something with code like UDIDFaker) for the UDID to change?
Thanks!
Henry
回答1:
No, the Unique Device ID will always stay the same, and the property is read-only
, as you mentioned other than jailbreaking and spoofing a UDID.
Apple has to have a way to identify millions of devices uniquely, so this is why they created the UDID.
回答2:
I didn't find any official word on whether the UDID can change.
But the documentation, while not being explicit, says the following (in UIDevice Class Reference):
A UDID is a hash value composed from various hardware identifiers such as the device serial number. It is guaranteed to be unique for each device. The UDID is independent of the device name. For devices that use a SIM (subscriber identity module) card, the UDID is independent of the SIM card.
Based on this, I continue to assume that the UDID of a device never change.
You might ask your beta-tester if the device was repaired by Apple, or (more likely), if she changed her device in between. If the device was "repaired", its not impossible that Apple just swapped it with a new one, and she did not realize.
回答3:
UDID can't be modified. You can "change" it for one application for example, it's called spoofing, but it's not permanent - it's useful for debugging for example (swizzling - replace method with custom implementation).
来源:https://stackoverflow.com/questions/5171581/short-of-jailbreaking-does-a-udid-ever-change-on-an-idevice