Кто производитель идентификатораForVendor

У меня есть несколько приложений, идентификаторы пакетов которых имеют одинаковый префикс, например com.mycompany.app1 и com.mycompany.app2, хотя их учетные записи разработчиков Apple разные.

В процессе разработки я могу получить то же значение, вызвав identifierForVendor. Но они становятся отличными друг от друга, когда они представлены в App Store.

Абзац ниже, описанный в разделе identifierForVendor в документации Apple, смутил меня.

Обычно поставщик определяется по данным, предоставленным App Store. Если приложение не было установлено из магазина приложений (например, корпоративные приложения и приложения, которые все еще находятся в разработке), идентификатор поставщика рассчитывается на основе идентификатора пакета приложения. Предполагается, что идентификатор пакета имеет формат обратного DNS.

Apple не сообщает нам, как App Store определяет поставщика, когда приложения были в App Store.


person Clay Zhu    schedule 28.03.2018    source источник
comment
Vendor является владельцем учетной записи магазина iTunes. Все приложения от одного разработчика имеют одинаковый идентификатор.   -  person Sulthan    schedule 28.03.2018
comment
@Sulthan Это означает, что поставщик определяется идентификатором пакета приложений, когда они находятся в разработке. И затем это определяется учетной записью разработчика после их отправки в App Store. Это?   -  person Clay Zhu    schedule 28.03.2018
comment
В основном это все.   -  person Sulthan    schedule 28.03.2018
comment
Я использую ту же учетную запись разработчика. Но я получаю разные идентификаторы при установке на устройство. Но на симуляторе я получаю такие же идентификаторы   -  person Lohith Korupolu    schedule 12.12.2018
comment
@LohithKorupolu Это странно. У вас есть прогресс?   -  person Clay Zhu    schedule 21.03.2019


Ответы (1)


Я собрал несколько схем для идентификации устройства.

ЦАХАЛ

Как написано в вопросе, IDFV одинакова для приложений одного и того же поставщика, работающих на одном устройстве.

Обычно поставщик определяется по данным, предоставленным App Store. Если приложение не было установлено из магазина приложений (например, корпоративные приложения и приложения, которые все еще находятся в разработке), идентификатор поставщика рассчитывается на основе идентификатора пакета приложения.

Ссылка: https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor?language=objc

IDFA

В отличие от IDFV, всем поставщикам возвращается одно и то же значение. Этот идентификатор может измениться, например, если пользователь стирает данные с устройства. В iOS 10.0 и более поздних версиях значение AdvertisingIdentifier равно нулю, если у пользователя ограничено отслеживание рекламы.

Приложение может быть отклонено, если разработчик попытается получить IDFA без показа рекламы.

Ссылка: https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier?language=objc

Обмен связкой ключей

То же самое для приложений с одним и тем же идентификатором команды.

Ссылка: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps?language=objc

Проверка устройства

То же самое для приложений, созданных из одной и той же учетной записи Apple Developer. Доступно с iOS 11.

Ссылка: https://developer.apple.com/documentation/devicecheck?language=objc

OpenUDID

То же самое для приложений с одним и тем же идентификатором команды. Эта схема устарела.

Ссылка: https://github.com/ylechelle/OpenUDID

FCUUID

То же самое для приложений с одним и тем же идентификатором команды.

Ссылка: https://github.com/fabiocaccamo/FCUUID

person Clay Zhu    schedule 21.03.2019