Vendor id apple что это

How do I find out what my Apple vendor ID is?

I’m doing some Apple iTunes Connect reporting via the Autoingest tool. It requires that I not only specify login account info, but also a «vendorid». I have no clue what our vendor ID might be. Where can I find such info on Apple’s site?

4 Answers 4

Click on the Sales and Trends section, and your vendor ID will be displayed in the upper-left corner next to your developer name. It should start with an 8.

This number may be a bit harder to find since Apple re-designed iTunes Connect on Mon, Feb 17th, 2014.

Multiple vendors: If you go into the monthly financial section and have multiple vendors a drop down will show up in the upper left with this number.

If you only have one vendor: Download a monthly financial report. The vendor id is the long number at the beginning of the report name before the first underscore.

With the new iTunesConnect, you don’t actually have to download a financial report to get the Vendor ID.

Go to «Sales and Trends», then choose «Reports» from the drop-down menu in the top left.

On the next screen, there’ll be a drop-down menu for «Vendor». Your name and ID will be shown there.

Apparently the latest version of the Autoingestion script is looking for a 10 digit version of the ID. If you stick two zero’s in front of the number it gives you on the Sales and Trends page that will work.

Источник

Find Apple Customer Numbers, Reseller IDs, and Organization IDs

Learn how to find your number or ID and when to use it with Apple Business Manager or with Apple School Manager.

This article is for system administrators. If you need support, learn how to contact Apple.

When you add your Apple Customer Number or Reseller ID to Apple Business Manager or Apple School Manager, you can deploy your devices and purchase apps and books in volume.

Find your Apple Customer Number or Reseller ID

Whether you purchase your devices from Apple or from a participating Apple Authorized Reseller, learn how to find your number or ID.

If you purchased from Apple

When you purchase from Apple, we assign an Apple Customer Number to your organization. If you don’t know your Apple Customer Number, contact your finance department or Apple Sales.

If you buy Apple devices from an Apple Store, ask the Business Team for your Apple Customer Number.

If you purchased from an Apple Authorized Reseller or wireless carrier

  1. Contact your Apple Authorized Reseller or wireless carrier.
  2. Confirm that they support the Device Enrollment feature of Apple Business Manager or Apple School Manager.
  3. Ask for their Reseller ID.

If they don’t support these programs, ask them to contact their distributor or Apple account team. If they choose to participate, they’ll work with their distributor or Apple to start supporting Device Enrollment.

Find your Organization ID

If you purchase devices from an Apple Authorized Reseller or wireless carrier, you also need to provide your Organization ID to your reseller or carrier. Here’s how to find it:

  1. Log in to Apple Business Manager or Apple School Manager
  2. Click Settings, then click Enrollment Information.
  3. Look for your Organization ID in the Enrollment Information pane.

How to use your number or ID with Apple Business Manager or with Apple School Manager

After your organization is approved for Apple Business Manager or Apple School Manager, you can add device suppliers by entering your Apple Customer Number, or your reseller or carrier’s Reseller ID:*

  1. Log in to Apple Business Manager or Apple School Manager.
  2. Click Settings, then click Device Management Settings.
  3. Next to Customer Numbers, click Edit.
  4. Enter your number or ID.
  5. Click Apply.

If you enter a Reseller ID, you also need to provide your Organization ID to your reseller or carrier. You can find your Organization ID in the Enrollment Information pane.

Читайте также:  Частота обновления экрана iphone 13 mini

* If you represent a large organization, like a school district, you might have more than one Apple Customer Number or Reseller ID. You can add multiple Apple Customer Numbers or Reseller IDs when you enroll, or any time after you enroll.

Источник

User Privacy and Data Use

The App Store is designed to be a safe and trusted place for users to discover apps created by talented developers around the world. Apps on the App Store are held to a high standard for privacy, security, and content because nothing is more important than maintaining users’ trust. In order to submit new apps and app updates, you need to provide information about some of your app’s data collection practices on your product page. With iOS 14.5, iPadOS 14.5, and tvOS 14.5 and later, you’re required to ask users for their permission to track them across apps and websites owned by other companies.

Describing How Your App Uses Data

The App Store better helps users understand an app’s privacy practices before they download the app. On each app’s product page, users can learn about some of the data types an app may collect, and whether the information is used to track them or is linked to their identity or device.

In order to submit new apps and app updates, you must provide information about your privacy practices in App Store Connect. If you use third-party code — such as advertising or analytics SDKs — you need to describe what data the third-party code collects, how the data may be used, and whether the data is used to track users.

Asking Permission to Track

With iOS 14.5, iPadOS 14.5, and tvOS 14.5 and later, you need to receive the user’s permission through the AppTrackingTransparency framework in order to track them or access their device’s advertising identifier. Tracking refers to the act of linking user or device data collected from your app with user or device data collected from other companies’ apps, websites, or offline properties for targeted advertising or advertising measurement purposes. Tracking also refers to sharing user or device data with data brokers.

Examples of tracking include, but are not limited to:

  • Displaying targeted advertisements in your app based on user data collected from apps and websites owned by other companies.
  • Sharing device location data or email lists with a data broker.
  • Sharing a list of emails, advertising IDs, or other IDs with a third-party advertising network that uses that information to retarget those users in other developers’ apps or to find similar users.
  • Placing a third-party SDK in your app that combines user data from your app with user data from other developers’ apps to target advertising or measure advertising efficiency, even if you don’t use the SDK for these purposes. For example, using an analytics SDK that repurposes the data it collects from your app to enable targeted advertising in other developers’ apps.

The following use cases are not considered tracking, and do not require user permission through the AppTrackingTransparency framework:

  • When user or device data from your app is linked to third-party data solely on the user’s device and is not sent off the device in a way that can identify the user or device.
  • When the data broker with whom you share data uses the data solely for fraud detection, fraud prevention, or security purposes. For example, using a data broker solely to prevent credit card fraud.
  • When the data broker is a consumer reporting agency and the data is shared with them for purposes of (1) reporting on a consumer’s creditworthiness, or (2) obtaining information on a consumer’s creditworthiness for the specific purpose of making a credit determination.

Using the AppTrackingTransparency Framework

To request permission to track the user and access the device’s advertising identifier, use the AppTrackingTransparency framework. You must also include a purpose string in the system prompt that explains why you’d like to track the user. Unless you receive permission from the user to enable tracking, the device’s advertising identifier value will be all zeros and you may not track them as described above.

While you can display the AppTrackingTransparency prompt whenever you choose, the device’s advertising identifier value will only be returned once you present the prompt and the user grants permission. Use the purpose string to explain what this data will be used for to help the user understand what they’re opting in to share. If the user allows apps to request to track, but has turned tracking off for your app, you can ask the user to change their preference for your app by providing a shortcut to Settings where they can change the tracking permission.

Читайте также:  Первая версия логотипа компании apple

The ID for Vendors (IDFV), may be used for analytics across apps from the same content provider. The IDFV may not be combined with other data to track a user across apps and websites owned by other companies unless you have been granted permission to track by the user.

Источник

Different vendor IDs in multiple apps from same vendor

We recently launced a second app in the app store. We’re doing some work to find users of both our apps via a common Vendor ID. However, after installing both apps from the App Store, I’m getting 2 different vendor IDs.

I’ve tested with iOS 7.1.1 and 8.3

From that documentation, it would seem I should be getting back identical vendor IDs.

Our bundle IDs for our apps are completely different. App 1: com.x App 2: me.y

What can we do to ensure users of our second app will have the same vendor ID if they have our first app installed on their device? Do we need to change our bundle id on our second app? And if so, what are the ramifications of that (submitting a «new» app, re-generating certificates, profiles, etc)?

Any insight would be greatly appreciated!

Answers

we are experiencing in a way similar problem with vendor IDs.

With our latest app update released yesterday all or some of our clients vendor IDs changed.

Could it be possibly related to merging the iOS and mac dev programs?

Any insight would be greatly appreciated!

We have one live App on Apple store and in that we have a call for identifierForVendor from iOS which is used as one of evidences in KPS call. This value is supposed to be same for the apps that comes from the same vendor running on the same device. We are seeing in the log that this value is getting changed. This is not supposed to change on app update for the same vendor.

We have recently migrated the app from one apple account to another but everytime we are trying to fetch the value it is not constant.

We refererred to the following link for more details:

But the link doesnot have sufficient information to help us with the issue.

The problem is seen only in version updated to the new Apple account. Can you please put more insight on the same as only the team id is changed moving the app from one account to another and let us know what could be possible issue or fix for the same.

Источник

xydan

Пережеванные выкладки программиста

или же трудные будни ленивца-скурпулезы

Довольно часто требуется получить идентификационный номер производителя устройств типа ProdID и VendorID. Например, флеш-диска или жесткого диска. По данному шифру можно, например, определить, что за фирма произвела устройство. Получать можно разными способами, либо из реестра винды, либо напрямую из устройства. В своем примере я напишу, как получить данные ID-шники посредствам WIN DDK API из устройства.

WIN DDK изначально представляет из себя API, набор функций, структур и констант, облегчающее написание драйверов под windows. Так же данный набор можно использовать для работы непосредственно с устройствами. Скачать WIN DDK можно непосредственно с сайта Microsoft. В нем вы так же найдете достаточно мощное описание и среднее количество примеров.
Скачать можно по этой ссылке: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff

Рассмотрим пример 1 получения prodID и vendorID.

Для рассмотрения примера, я написал функцию, которая в параметрах возвращает prodID и vendorId, а принимает номер устройства по условному порядку. Определяемые устройства зависят от типа GUID ((Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. http://ru.wikipedia.org/wiki/GUID ). В данном примере номер GUID определяет список устройств типа usb device interface. Сама же функция возвращает код ошибки.

Рассмотрим код примера:

int GetProdVendorId(long* prodId, long* vendorId, unsigned long DeviceNum)

DWORD tmpsize = 0, countDev = DeviceNum;

SP_DEVINFO_DATA Devinfo; //инфа об устройстве

char wcVidPidStr[512] = <0>; //for hardwareid

PBYTE wprodID = 0;

PBYTE wvendorID = 0;

GUID tmpguid = <0xA5DCBF10, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED>; //эта строчка определяет guid типов устройств, которые мы будем обрабатывать, то есть получать prodID и vendorID. Константа взята из ddk — GUID_DEVINTERFACE_USB_DEVICE;

Читайте также:  Восстановление face id iphone xs max

// Далее, строим список подключённых устройств с заданными параметрами и получаем дескриптор на него

if (hDeviceList == INVALID_HANDLE_VALUE) return 1;//Проверка получения handle

Devinfo.cbSize = sizeof(SP_DEVINFO_DATA); // Нужно установить размер структуры.

if (!SetupDiEnumDeviceInfo(hDeviceList, countDev, &Devinfo)) //Получаем информацию об устройстве из списка.

//ошибка!
if(GetLastError()== ERROR_NO_MORE_ITEMS)
return -1;
else return -2;

memset(wcVidPidStr, 0, sizeof(wcVidPidStr));

if ( !SetupDiGetDeviceRegistryProperty(hDevic eList, &Devinfo, SPDRP_UPPERFILTERS, NULL, wcVidPidStr, sizeof(wcVidPidStr), &tmpsize) ) //А через эту ф-цию можно получить достаточно разнообразную информацию изменяя 3 параметр, но в данном случае нас интересует параметр определенный константой SPDRP_UPPERFILTERS для получения ID.

//Это что то типа парсера, посколько мы получаем достаточно длинную строчку, то по определенным признакам находим Vid и Pid номера и записываем их в отдельные переменные.

wvendorID = strstr(wcVidPidStr, «Vid_») + 4;

wprodID = strstr(wcVidPidStr, «Pid_») + 4;

//Переводим из char hex строки в int hex.

//Поскольку строка включает в себя еще и мусор, sscanf его отсеивает

if((wvendorID != NULL) && (wprodID != NULL))

sscanf(wvendorID, «%x», vendorId);

sscanf(wprodID, «%x», prodId);

SetupDiDeleteDeviceInfo(hDeviceList, &Devinfo);//Удаляем инфу, подметаем

Вызывая функцию в цикле и передавая номера устройств, можно определить весь список PID и VID устройств подключенных к шине USB. Конец списка определяется по возвращаемой ошибке -1.

В интернете можно найти множество разных сайтов, где можно прочитать перевод и описание приведенных функций из примера.

Рассмотрим немного другой пример 2 приведенный выше функции:
Данная функция в отличие от первой выдает так же VID и PID одного устройства за один вызов функции, с той лишь разницей, что если вы захотите получить весь список VID и PID номеров определенных типов устройств, то в вам нужно вызывать эту функцию n-ое количество раз, до тех пор, пока список устройств не закончится и нет необходимости передавать номера устройств в виде параметра. Еще одно отличие в том, что в этом примере дополнительно введен фильтр для типов устройств, например, для обнаружения устройств типа MASS STORAGE.

Принцип работы функции заключается в определении VID и PID устройства при каждом вызове данной функции. То есть за один вызов, данная функция выдает VID и PID одного устройства по порядку, начиная с указанного в параметре countDev. Чтобы определить весь список VID и PID устройств, тип которых указан в GUID функции, необходимо поставить вызов данной функции в цикл и отслеживать окончание списка устройств, по определенному коду (-1), возвращаемому функцией. Первые два параметра идентичные функции из первого примера, второй параметр задает условное значение, начиная с какого устройства по номеру функции нужно выдавать значения, 4-ый параметр стирает информацию о предыдущих вызовах данной функции и функция начинает работать с нуля.

//Второй вариант функции. Функция выдаст весь список подключенных устройств
//типа MassStorageDevice

int GetProdVendorId(long* prodId, long* vendorId, unsigned long* countDev, bool Reset)

static bool func_call_again;

DWORD tmpsize = 0;

static SP_DEVINFO_DATA Devinfo; //инфа об устройстве

char wcVidPidStr[512] = <0>; //for hardwareid

PBYTE wprodID = 0;

PBYTE wvendorID = 0;

func_call_again = false;//Сбрасываем флаг вызова ф-ции

if(func_call_again)//Смотрим, было ли вхождение, если да, то прибавляем счетчик

*countDev = *countDev + 1;

// Строим список подключённых устройств с заданными параметрами и получаем дескриптор на него

if (hDeviceList == INVALID_HANDLE_VALUE) return -5;//Проверка на получение списка устройств

Devinfo.cbSize = sizeof(SP_DEVINFO_DATA); // Нужно установить размер структуры.

func_call_again = true;//Отмечаем, что функция уже вызывалась

if (!SetupDiEnumDeviceInfo(hDeviceList, *countDev, &Devinfo)) //Получаем информацию об очередном устройстве из списка.

//Если больше устройств нет, то уничтожаем инфу и возвращаем код события

else return -2;//Если любая другая ошибка, то возвращаем код ошибки

memset(wcVidPidStr, 0, sizeof(wcVidPidStr));

//Задаем тип информации, который хотим получить, в данный момент хотим выяснять в цикле

//какие типы устройств сидят в системе по заданным выше параметрам (DIGCF_DEVICEINTERFACE | DIGCF_PRESENT)

if ( !SetupDiGetDeviceRegistryProperty(hDevic eList, &Devinfo, SPDRP_SERVICE, NULL, wcVidPidStr,

sizeof(wcVidPidStr), &tmpsize) ) //получаем строку с vidpid

>else if(strcmp(wcVidPidStr, «USBSTOR») == 0)//Ищем первое вхождение в MassStorageDevice

//В данной момент, мы ищем устройства по типу USBSTOR, если нужно найти любое

//другое устройство, необходимо изменить USBSTOR на другой тип (фильтр).

memset(wcVidPidStr, 0, sizeof(wcVidPidStr));

//Ниже получаем информацию найденного нами устройства. Тип информации -его Vid и Prod ID.

if ( !SetupDiGetDeviceRegistryProperty(hDevic eList, &Devinfo, SPDRP_HARDWAREID, NULL, wcVidPidStr,

sizeof(wcVidPidStr), &tmpsize) ) //получаем строку с vidpid

return -3;//Устройство найдено но не получена инфа

//Узнаем Vendor и Prod id.

wvendorID = strstr(wcVidPidStr, «Vid_») + 4;

wprodID = strstr(wcVidPidStr, «Pid_») + 4;

//Переводим из char hex строки в int hex.

//Поскольку строка включает в себя еще и мусор, sscanf его отсеивает

if((wvendorID != NULL) && (wprodID != NULL))

sscanf(wvendorID, «%x», vendorId);

sscanf(wprodID, «%x», prodId);

break;//Как только инфа получена, выходим их ф-ции,

//но не уничтожаем хендл инфы для следующего вхождения.

//Если нужно всего одно вхождение, то необходимо поставить

//и необходимо обнулять всегда func_call_again.

//Но тогда список начнется с самого начала.

>else return -4;//В переменных не оказалось IDшников

Источник

Оцените статью