Могу ли я изменить Идентификатор пакета в моем приложении после его утверждения? - PullRequest
23 голосов
/ 04 апреля 2010

Я недавно одобрил мое приложение и использовал * профиль обеспечения, поэтому я создал что-то вроде:

com.mydomain.MyApp

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

Как мне действовать, чтобы обновление приложения ничего не нарушало

Ответы [ 3 ]

23 голосов
/ 27 июля 2010

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

Приложениям, использующим подстановочный знак, все еще требуется обычный идентификатор пакета. Подстановочный идентификатор AppID позволяет вам использовать любой идентификатор пакета, который вам нравится, но он все еще нужен.

Раньше была статья Apple об этом: но он больше недоступен онлайн Тем не менее, архив доступен.

11 голосов
/ 10 мая 2010

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

Мне нужно было включить iAds в приложении, ранее разработанном с подстановочным идентификатором приложения. Вот что я сделал:

У меня есть шаблонный идентификатор приложения <AlphaNumeric>.*, который мое приложение использует в настоящее время, а мое приложение имеет CFBundleIdentifier com.companyname.mygame.

Создан новый идентификатор приложения <AlphaNumeric>.com.companyname.mygame.

Созданы новые профили обеспечения разработки и распространения, включающие новый идентификатор приложения.

Загрузите новые профили обеспечения в Xcode и мои устройства.

Затем я смог скомпилировать приложение с новым профилем распространения без подстановочных знаков, что означало, что при загрузке я мог включить iAds (или Push для вас). CFBundleIdentifier не изменился, поэтому новая компиляция отображается как обновление существующего приложения.

Я могу подтвердить, что этот процесс работал без проблем.

1 голос
/ 05 октября 2012

В разделе «Часто задаваемые вопросы» в документе, озаглавленном «Техническая записка TN2259», который называется «Добавление покупок из приложений в приложения для iOS и Mac», этот бит

Вопрос: мое приложение iOS в настоящее время подписано с помощью профиля обеспечения который использует подстановочный идентификатор приложения. Как включить поддержку моего идентификатора приложения Покупки в приложении?

Ответ. Прочтите раздел «Создание и настройка идентификаторов приложений» Руководство по администрированию группы iOS, чтобы узнать, как включить приложение Идентификатор для поддержки покупки в приложении.

Ссылка указывает здесь , и есть раздел под названием «Обновление вашего приложения для включения APNS, iCloud, покупок в приложении или Game Center требует явного идентификатора приложения»

Тем не менее, я не знаю (пока), в какой момент приложение получает новый идентификатор приложения. Это когда вы загружаете для проверки, до этого или когда он был одобрен? Сейчас я работаю над этой проблемой, поэтому скоро смогу добавить к этому ответу.

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

...