Подтвердить что ты не робот

IOS Push Notifications работает для Dev, но не для распространения в компании

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

У нас есть приложение, которое получает push-уведомления при использовании профиля Dev, но не тогда, когда мы используем наш профиль распространения Enterprise.

Идентификатор приложения включен для push-уведомлений в изолированной программной среде.

Сертификат и оба профиля связаны с идентификатором приложения.

Если я создаю форму Xcode push-уведомлений, вы получите штраф. Если я архивирую и распространяю сервер возвращает:

[Failed to push 6dje7djksis7hyhdjshsjksjd74jdjskshdjd8dhjjdkwu for reason 8]

Это недопустимый токен.

Одна вещь, которую я заметил, это то, что наш профиль подготовки Dev имеет следующее значение для aps-environment:

<key>aps-environment</key>
<string>development</string>

Пока профиль распространения Enterprise имеет:

<key>aps-environment</key>
<string>production</string>

Когда я запускаю отладочную сборку на свой телефон (push works), права на файл .app:

<key>aps-environment</key>
<string>development</string>

Когда я архивирую их всегда (независимо от того, какой профиль обеспечения я использую или схемаю):

<key>aps-environment</key>
<string>production</string>

Может ли кто-нибудь сказать мне, если это ожидается? Ни один из других вопросов на этом сайте, который я смог найти, действительно придумал причину, по которой Dev работал, но Enterprise Distribution не будет.

Почему архивирование всегда делает создание aps-environment?

Спасибо за ваше время.

Обновление Это интересно.

От:

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html

"Вы должны получить отдельные сертификаты для среды песочницы (разработки) и рабочей среды. Сертификаты связаны с идентификатором приложения, которое является получателем push-уведомлений, этот идентификатор включает идентификатор пакета приложений. профили обеспечения для одной из сред, необходимые права автоматически добавляются в профиль, включая право, специфическое для push-уведомлений. Два профиля подготовки называются" Разработка и распространение". Профиль предоставления распределения является обязательным условием для представления ваше приложение в App Store.

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

У кого-нибудь есть идея? Я не могу найти какую-либо конкретную информацию в документах об этом.

Спасибо

4b9b3361

Ответ 1

Для вашего приложения есть два push-сертификата. 1 для разработки и 1 для производства. Посмотрите в разделе "Сертификат push" портала обеспечения.

Таким образом, любой механизм push, который вы используете для отправки толкателей, должен быть настроен с правильным сертификатом. В вашем случае выпуск предприятия будет получать толки, используя сертификат производства/распространения.

Ответ 2

В обеих версиях разработки и производства AppID необходимо включить push-уведомления на веб-сайте "Provision Profile".

Ответ 3

  • Используйте производственные сертификаты.
  • Использовать производственный APN Host: gateway.push.apple.com вместо разработки APN: gateway.sandbox.push.apple.com
  • Использовать продукцию APN Feedback Host: feedback.push.apple.com.

Подробнее... здесь