2013-06-12 3 views
14

Я был в восторге от того, чтобы попробовать в первый раз добавить новое приложение в iTunes Connect to TEST мои функции GAMEKIT.iTunes connect: confused on Bundle ID

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

enter image description here

Для того, чтобы использовать GameKit и InApp Покупка я должен создать новый Bundle Id?

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

  • Я не знаю, если ток Id Bundle действует (в отношении технической записке, связанной выше)
  • Я не знаю, если HTE Bundle Id влияет то, что я могу добавить в приложение позже (например, в App Purchase, GameKit, ...)
  • Если я создаю новое приложение с именем (скажем: HelloApple), но с идентификатором пакета с шаблоном (Say: hello - *) смогу ли я добавить новое приложение с тем же именем, но с другим идентификатором пакета на более позднем этапе? Это действительно перед публикацией ЛЮБОЙ из двух приложений.
  • Я не совсем понимаю, почему существует выбор между использованием или не использованием шаблона; другими словами, если для использования в App Purchase и GameKit требуется идентификатор пакета без подстановочных знаков, почему разработчик должен использовать идентификатор приложения с идентификатором?

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

ответ

25

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

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

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

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

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

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

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

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

Но есть еще сказать обо всем этом. Я рекомендую вам прочитать «App Distribution Guide», как я это делал недавно. Это обширный справочник, но на данный момент вам нужно только прочитать разделы темы «Maintaining Your Signing Identities and Certificates» и «Maintaining Identifiers, Devices, and Profiles». Руководство очень четкое, полное скриншотов, и оно ответит на все ваши вопросы.Также вы можете вернуться к руководству по дороге, чтобы быстро решить какую-то проблему (и у вас будут проблемы).

Впервые, когда я создал приложение с Game-Center и IAP более года назад, я просмотрел stackoverflow, чтобы ответить на все мои вопросы. Но у меня были проблемы с истечением срока действия сертификатов, когда я добавлял новые устройства и т. Д., И каждый раз, когда я находил их, и решение Ad-hoc после многого разворачивания и возврата к stackoverflow. Не поймите меня неправильно, есть отличные ответы в stackoverflow, но в моем опыте гораздо лучшая стратегия читать что-то более длинное, что объясняет большую картину. Идентификатор приложения, идентификаторы пакетов, сертификаты, закрытые ключи и т. Д. - это грязный вопрос, особенно если вы не понимаете, почему он построен таким образом.

+0

Спасибо Robotillo, я принял ваш ответ, поскольку он был более полным. – mm24

+0

«почему он построен таким образом», ответ меняет ваше восприятие – carelesslyChoosy

2

То, что я думаю, что компании Apple хочет:

  1. Создать другой пучок ID для каждого приложения, которое использует в-App покупки/GameKit или обоих.

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

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

Кто-нибудь более осведомлен, Пожалуйста, исправьте меня, если я ошибаюсь.

5

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

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

+0

Привет, Джанлука, спасибо за ваш ответ. У меня уже есть идентификатор подстановки, который я использовал до сих пор, чтобы протестировать «TestApps». Однако теперь я нахожусь в стадии, когда мне нужно также проверить функции GameKit для конкретного приложения. В этом случае мне нужно будет перестроить все профили подготовки для этого приложения (профиль разработки и дистрибутив)? – mm24

+1

Да, когда вы добавляете функцию, требующую данных ваших сертификатов, таких как Game Center и iCloud, вам необходимо переделать профиль подготовки для этого приложения. К счастью, если у вас есть Xcode 5 (в настоящее время в Developer Preview), Xcode делает это за вас. –

+0

Привет, Джанлука, я хотел бы принять ответ, но у меня есть последнее сомнение. Я создал свой идентификатор привязки, а затем пошел, чтобы создать новое приложение для подключения iTunes. Он уже просит меня предоставить скриншоты и выбрать ценовой уровень. Все, что я хочу сделать, это проверить приложение для GameCenter. Как мне это сделать? Я имею в виду, должен ли я предоставить всю эту информацию Apple, чтобы полностью протестировать приложение для GameCenter? – mm24

Смежные вопросы