iTunes connect: запутался в идентификаторе пакета

Я был рад попытаться добавить в первый раз новое приложение на iTunes Connect, чтобы проверить мои функции GAMEKIT.

Я прочитала этой техническое примечание, и я запутываюсь, потому что у меня уже был идентификатор boundle для моего приложения, который я создал, когда начал его разрабатывать (это мой текущий идентификатор пакета, с которым я создал текущие профили подготовки и тестирования: hello-*).

enter image description here

для того, чтобы использовать GameKit и iNAPP Purchase должен ли я создать новый идентификатор пакета?

Я смущен, потому что:

  • я не знаю, действителен ли текущий идентификатор пакета (в отношении технической заметки, связанной выше)
  • я не знаю, влияет ли hte Bundle Id на то, что я могу добавить в приложение позже (например. в покупке приложения, GameKit, ...)
  • если я создам новое приложение с именем (скажем: HelloApple), но с идентификатором пакета с подстановочным знаком (скажем: hello -*), я смогу добавить новое приложение с помощью то же имя, но другой идентификатор пакета на более позднем этапе? Это действительно перед публикацией любого из двух приложений.
  • я не совсем понимаю, почему есть выбор между использованием или не использованием подстановочного знака; другими словами, если не подстановочный идентификатор пакета необходим для использования в покупке приложения и GameKit, почему разработчик должен использовать подстановочный идентификатор приложения?

любая помощь будет оценена, в частности, мне нужно решить мою первую проблему: какой идентификатор пакета я должен использовать в ordert для использовать GameKit и InAppPurchase?

3 ответов


прежде чем ответить на ваши вопросы некоторые определения:

идентификатор пакета: обратная строка DNS, которая точно идентифицирует одно приложение.

строка поиска идентификатора пакета: он используется для сопоставления набора идентификаторов пакетов, где каждый идентификатор пакета идентифицирует одно приложение. Например, если строка поиска идентификатора пакета com.mycompany.MyApp или подстановочный знак, такой как com.mycompany.*, тогда он будет соответствовать идентификатору пакета com.mycompany.MyApp.

идентификатор: строку идентифицирует одно или несколько приложений из одной команды. Идентификатор приложения состоит из строка поиска идентификатора пакета предшествует ID команды, 10-символьная строка, сгенерированная Apple для уникальной идентификации команды. В техническое Примечание что вы связываете это ABCDE12345 и вызвал идентификатор семени пакета.

(Разработка) Профиль Подготовки: вы используете его для авторизации вашего приложения для запуска на устройствах и использования определенных технологий магазина, когда вы в развитии. Он состоит из: одного идентификатора приложения, набора устройств и набора сертификатов разработки. Профили подготовки создаются в центре участников, и они нужны на устройстве для запуска приложения. XCode может загружать профили подготовки и устанавливать их на устройства.

теперь я отвечу на ваши пули:

  • для использования Game-Center (GameKit) и IAP вам нужен явное приложение ID, вот и App ID с идентификатор пакета строка поиска что нет *. А wild-card App ID, в котором строка поиска идентификатора пакета у этого есть *, и это тот, который у вас есть сейчас.
  • то, что вы создаете изначально, - это идентификатор приложения со связанным идентификатором пакета. Если он явный, вы можете добавить Game-Center и IAP, если это идентификатор приложения подстановочного знака... вот и все.
  • вы не можете иметь два приложения с разными именами, но один и тот же явный идентификатор приложения или идентификатор пакета. Но вы можете иметь два приложения с разными именами, которые не используют Game-Center или IAP с уникальным идентификатором приложения, используя идентификатор подстановочного знака.
  • вы спрашиваете, почему подстановочный знак полезен... Ну, я сказал, что если вы не используете Game-Center или IAP, вы можете иметь два или более приложений, связанных с идентификатором приложения подстановочного знака. Затем вы можете создать профиль подготовки с этим идентификатором приложения, и вам нужно только установить этот профиль подготовки на своих устройствах для всех ваших приложений. Существует профиль подготовки по умолчанию этого типа, называемый Профиль Подготовки Команды, который действителен для всех ваших приложений, но вы можете создать более конкретные, которые действительны для подмножества всех вы приложений.

этот процесс действительно полезен для больших команд. Если у вас небольшая команда и несколько приложений, это действительно сбивает с толку, но помогает понять причины этого.

но есть еще что сказать обо всем этом. Я рекомендую вам прочитать "Руководство По Распространению Приложений


идентификатор пакета-это просто идентификатор для вашего приложения. Он в основном используется для предоставления сертификатов, которые необходимо использовать для подписи приложения перед отправкой в App Store или для его использования на устройствах разработки (например, для тестирования). Идентификатор пакета может быть любым. Apple рекомендует использовать синтаксис com.yourcompany.yourapp чтобы сохранить его согласованным между приложениями, которые вы разрабатываете, и избежать конфликтов с идентификаторами других приложений.

подстановочный знак может использоваться во всех ваших приложениях, в то время как конкретный идентификатор может использоваться только с одним приложением. Я советую вам иметь идентификатор для каждого вашего приложения и только подстановочный знак для разработки (чтобы вы могли запускать на своих устройствах столько приложений, сколько хотите, не беспокоясь о сертификатах, пока не решите отправить приложение). Вам не нужно иметь доступ ко всем службам (например, Game Center или iCloud) во всех ваших приложениях, и поэтому вам лучше подписать отдельные сертификаты только с услугами, необходимыми вашему приложению.


Я думаю, что Apple хочет:

  1. создайте другой идентификатор пакета для каждого приложения, которое использует in-App purchase / GameKit или оба.

  2. вы можете иметь тот же App-ID и bundle ID для приложений, которые их не используют.

  3. Если bundleID, который у вас есть для вашего приложения, не используется для других ваших приложений, вы можете использовать его.

кто-то более знающий, пожалуйста, поправьте меня, если я ошибаюсь.