ITunes подключается: путать с идентификатором Bundle - программирование
Подтвердить что ты не робот

ITunes подключается: путать с идентификатором Bundle

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

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

enter image description here

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

Я запутался, потому что:

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

Но об этом можно многое сказать. Я рекомендую вам прочитать "" Руководство по распространению приложений", как это было недавно. Это обширный справочник, но на данный момент вам нужно только прочитать разделы темы "" Поддержание удостоверений личности и сертификатов" и " Поддержание идентификаторов, устройств и профилей". Руководство очень четкое, полное скриншотов, и оно ответит на все ваши вопросы. Также вы можете вернуться к руководству по дороге, чтобы быстро решить какую-то проблему (и у вас будут проблемы).

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

Ответ 2

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

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

Ответ 3

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

  • Создайте другой идентификатор пакета для каждого приложения, которое использует покупку в приложении /GameKit или и то, и другое.

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

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

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