Does identifierForVendor (IDFV) change after transferring an app to another Apple Developer account?

Title: Does identifierForVendor (IDFV) change after transferring an app to another Apple Developer account?

We are planning to transfer an existing App Store app from one Apple Developer account/team to another using App Transfer.

The app currently uses:

UIDevice.current.identifierForVendor

as one of the identifiers sent to our backend.

We would like to confirm the exact behavior of identifierForVendor after the app is transferred to the recipient developer account.

Our scenario is:

  1. The app is currently published under Developer Team A.
  2. Existing users already have the app installed on their devices.
  3. We transfer the app to Developer Team B through App Store Connect.
  4. Developer Team B creates new certificates/provisioning profiles and publishes a new version of the same app.
  5. Existing users update the app normally from the App Store, without uninstalling it.

Questions:

  1. After an existing user updates from the last version published by Team A to the first version published by Team B, will UIDevice.current.identifierForVendor remain the same, or will it be regenerated?
  2. Is the vendor used to calculate IDFV associated with:
    • the App Store app record,
    • the Bundle ID,
    • the Team ID,
    • the App ID Prefix,
    • the developer organization/vendor,
    • or some other value?
  3. Does App Transfer itself cause IDFV to change, or does the value only change under specific conditions such as changing the organization name or uninstalling all apps from the same vendor?
  4. If IDFV changes after App Transfer, does Apple provide any official migration or mapping mechanism that allows the backend to associate the old IDFV with the new IDFV?

For example, Sign in with Apple provides a user migration mechanism when transferring an app between developer teams. Is there any equivalent mechanism for identifierForVendor?

  1. Is there any difference between:
    • users who update the app directly after the transfer, and
    • users who uninstall the old version and reinstall the app after the transfer?

We have reviewed the documentation for identifierForVendor and App Transfer, but we could not find an explicit statement describing the IDFV behavior specifically for an App Transfer between two different developer teams.

Our main concern is maintaining backend device associations for existing users after the transfer.

We would appreciate an official clarification on whether IDFV continuity is guaranteed across App Transfer, and if not, what migration strategy Apple recommends.

Answered by DTS Engineer in 906011022
We have reviewed the documentation for identifierForVendor and App Transfer, but we could not find …

Right, and that kinda tells you all you need to know. The identifierForVendor docs quite detailed, so if they don’t cover your specific case then you should follow the advice at the end of the docs:

you should gracefully handle situations where the identifier changes.

If I were in your shoes I’d use something else to associate this instance of your app with your back end. The key attribute of identifierForVendor is that it’s shared between all the vendor’s apps on the device, and if you don’t need that then you can avoid this complexity but, say, generating a random UUID and storing that in a file in your app’s container. That will definitely persist across app transfer.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

We have reviewed the documentation for identifierForVendor and App Transfer, but we could not find …

Right, and that kinda tells you all you need to know. The identifierForVendor docs quite detailed, so if they don’t cover your specific case then you should follow the advice at the end of the docs:

you should gracefully handle situations where the identifier changes.

If I were in your shoes I’d use something else to associate this instance of your app with your back end. The key attribute of identifierForVendor is that it’s shared between all the vendor’s apps on the device, and if you don’t need that then you can avoid this complexity but, say, generating a random UUID and storing that in a file in your app’s container. That will definitely persist across app transfer.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Does identifierForVendor (IDFV) change after transferring an app to another Apple Developer account?
 
 
Q