Apple’s UIDevice.identifierForVendor provides a value that identifies a device to an app’s vendor. Apps from the same vendor on one device normally receive the same value. Developers can use it for vendor-scoped purposes such as recognizing app installations, analytics, or associating activity across the vendor’s apps. It is not, by itself, a person’s identity—but when combined with other data, it can contribute to tracking. It is not a cryptographic secret.
More importantly, it is not a permanent device identity. Apple notes that it can change after all of a vendor’s apps are removed and later reinstalled, and in some test or ad-hoc distribution scenarios. The risk isn’t limited to uninstalling: distribution or vendor transitions—such as moving between TestFlight and App Store builds, or transferring an app to a new company account—can also affect the identifier. Don’t assume it will stay the same across these transitions.
If an implementation uses this value as a stable input to a hash or key derivation, a changed input produces a different result; hashing does not make the identifier permanent. For long-lived key material, create the key once using an appropriate approach, store the result securely—such as in Keychain—and reuse it. If a change is intentional, handle it through an explicit migration or key rotation; otherwise, keep using the cached value to preserve compatibility.