push-уведомления ios работают для dev, но не для enterprise distribution

<p>я прочитал много постов здесь и просматривал документы apple весь день. ни один из постов здесь не имеет ответов, и документы не ясны по этому вопросу.</p><p>у нас есть приложение, которое получает push-уведомления при использовании профиля dev, но не при использовании нашего профиля распределения enterprise.</p><p>идентификатор приложения включен для push-уведомлений в песочнице.</p><p>сертификат и оба профиля связаны с идентификатором приложения.</p><p>если я создаю форму, xcode push-уведомления приходят нормально. если я архивирую и распространяю, сервер возвращает:</p><pre><code>[failed to push 6dje7djksis7hyhdjshsjksjd74jdjskshdjd8dhjjdkwu for reason 8] </code></pre><p>это неверный токен.</p><p>одна вещь, которую я заметил, состояла в том, что наш профиль обеспечения dev имеет следующее для aps-environment:</p><pre><code><key>aps-environment</key> <string>development</string> </code></pre><p>в то время как профиль распределения enterprise имеет:</p><pre><code><key>aps-environment</key> <string>production</string> </code></pre><p>когда я запускаю отладочную сборку на моем телефоне (push работает), права на файл .app:</p><pre><code><key>aps-environment</key> <string>development</string> </code></pre><p>когда я архивирую, они всегда (независимо от того, какой профиль обеспечения я использую или схему):</p><pre><code><key>aps-environment</key> <string>production</string> </code></pre><p>кто-нибудь может сказать мне, если это ожидается? ни один из других вопросов на этом сайте, которые мне удалось найти, на самом деле не дал причины, по которой dev работал бы, а enterprise distribution - нет.</p><p><em> почему архивирование <strong> всегда </strong> приводит к созданию aps-среды? </em></p><p>спасибо за ваше время.</p><p><strong> обновление </strong> это интересно.</p><p>от:</p><p> <a href="http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/remotenotificationspg/provisioningdevelopment/provisioningdevelopment.html">http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/remotenotificationspg/provisioningdevelopment/provisioningdevelopment.html</a> </p><p>"необходимо получить отдельные сертификаты для среды" песочницы "(разработки) и производственной среды. сертификаты связаны с идентификатором приложения, являющегося получателем push-уведомлений; этот идентификатор включает в себя идентификатор пакета приложения. при создании профиля обеспечения для одной из сред необходимые права автоматически добавляются в профиль, включая права, относящиеся к push-уведомлениям. <strong> два профиля обеспечения называются "разработка" и "распространение". профиль обеспечения распространения является требование о подаче заявки в app store. "</strong></p><p>это может означать, что вы не используете профиль распространения, если не собираетесь работать. это правда? это кажется странным, поскольку вы можете создать профиль корпоративного распространения, прежде чем идти в магазин приложений.</p><p>у кого-нибудь есть идеи по этому поводу? я не могу найти какую-либо конкретную информацию в документах об этом.</p><p>спасибо</p>

<p>для вашего приложения есть 2 push-сертификата. 1 для разработки и 1 для производства. посмотрите в разделе push-сертификата портала обеспечения.</p><p>поэтому любой механизм push, который вы используете для отправки push-сообщений, должен быть настроен с правильным сертификатом. в вашем случае корпоративная версия получит толчки с использованием сертификата производства/распространения.</p>

<ol> <li>используйте производственные сертификаты.</li> <li>используйте производственный apn host: <strong> gateway.push.apple.com </strong> вместо разработки apn: <strong> gateway.sandbox.push. apple.com </strong></li> <li>используйте производственный apn feedback host: <strong> feedback.push.apple.com </strong>.</li> </ol><p>для дополнительной проверки <a href="https://stackoverflow.com/questions/7208669/enabling-apple-push-notifications-for-ad-hoc-distribution-environment">здесь</a> </p>

<p>как в версии для разработки, так и в рабочей версии appid необходимо включить push-уведомления на веб-сайте apple "профиль обеспечения".</p>