Clay Zhu
Clay Zhu

Reputation: 27

What is the vendor of identifierForVendor

I have some Apps whose bundle IDs have same prefix, such as, com.mycompany.app1 and com.mycompany.app2, though their Apple Developer accounts are different.

When in development, I can get the same value by calling identifierForVendor. But it becomes different from each other when they are submitted on App Store.

The paragraph below described in identifierForVendor section in Apple Documentation confused me.

Normally, the vendor is determined by data provided by the App Store. If the app was not installed from the app store (such as enterprise apps and apps still in development), then a vendor identifier is calculated based on the app’s bundle ID. The bundle ID is assumed to be in reverse-DNS format.

Apple doesn't tell us how the App Store determines the vendor, when Apps have been on the App Store.

Upvotes: 0

Views: 2889

Answers (1)

Clay Zhu
Clay Zhu

Reputation: 27

I have collected some schemes to identity a device.

IDFV

Like written in the question, IDFV is the same for apps that come from the same vendor running on the same device.

Normally, the vendor is determined by data provided by the App Store. If the app was not installed from the app store (such as enterprise apps and apps still in development), then a vendor identifier is calculated based on the app’s bundle ID.

Reference: https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor?language=objc

IDFA

Unlike IDFV, the same value is returned to all vendors. This identifier may change—for example, if the user erases the device. In iOS 10.0 and later, the value of advertisingIdentifier is all zeroes when the user has limited ad tracking.

An app may be rejected if the developer attempt to get IDFA without serving advertisements.

Reference: https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier?language=objc

Keychain Sharing

Same for apps that come from the same team ID.

Reference: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps?language=objc

DeviceCheck

Same for apps that come from the same Apple Developer account. Available from iOS 11.

Reference: https://developer.apple.com/documentation/devicecheck?language=objc

OpenUDID

Same for apps that come from the same team ID. This scheme is deprecated.

Reference: https://github.com/ylechelle/OpenUDID

FCUUID

Same for apps that come from the same team ID.

Reference: https://github.com/fabiocaccamo/FCUUID

Upvotes: 1

Related Questions