Push-уведомления работают для Ad Hoc, но не при загрузке из магазина Apple.

Мое приложение только что было одобрено для магазина Apple. Я скачал его и установил на свой iPhone, но похоже, что push-уведомления не работают!

Я успешно тестировал push-уведомления в рабочей среде, используя специальный профиль подготовки. У меня не было проблем. Единственное, что я сделал по-другому, когда отправлял заявку в Apple, — это использовал профиль распространения в магазине приложений.

Приложение никогда не спрашивает меня (или любого другого, кто его загрузил), хочу ли я получать push-уведомления. Следовательно, телефон никогда не обращается к моему серверу для отправки push-токена (поскольку application:didRegisterForRemoteNotificationsWithDeviceToken: предположительно никогда не вызывается). Также приложение не отображается в приложении настроек в настройках уведомлений.

Что я могу делать не так??

РЕДАКТИРОВАТЬ: пока приложение ожидало одобрения, у меня возникли проблемы с созданием сертификата push-уведомлений. Может ли это иметь значение?

Проблема с созданием SSL-сертификата APN после отправки в магазин Apple


person MikeQ    schedule 10.04.2010    source источник


Ответы (2)


Убедитесь, что вы создали рабочий идентификатор приложения и включили для него push-уведомления. Затем создайте профиль обеспечения для этого приложения. Загрузите и откройте файл с помощью текстового редактора, чтобы ОБЯЗАТЕЛЬНО убедиться, что профиль содержит этот ключ и значение:

aps-среда производства

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

После того, как вы сделаете свою сборку, вы можете проверить окончательную сборку, чтобы убедиться, что она имеет право на aps-среду (вы ищете право на подпись кода aps-среды в разделе «Внутренние требования»):

codesign -dvvvv --entitlements - MyCoolApp.app

person tonyj    schedule 14.04.2010
comment
О вау спасибо! Да, это было так. Я проверил исходный профиль дистрибутива, и этого ключа там не было. Я предполагаю, что порядок, в котором вы выполняете эти шаги, действительно действительно имеет значение. - person MikeQ; 15.04.2010
comment
Отличное решение. Очень обнадеживает возможность проверить в окончательно скомпилированном приложении, установлены ли точки доступа или нет. - person scottbates22; 17.04.2013

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

person Ben Gottlieb    schedule 10.04.2010
comment
Под полным вы подразумеваете идентификатор без подстановочного знака? Если да, то да, это был совершенно другой идентификатор приложения. На самом деле я протестировал специальное приложение, используя идентификатор, оканчивающийся на .adHoc, и это сработало нормально, а затем я отправил приложение, используя идентификатор, оканчивающийся на .release. Это было единственное изменение. Как только я узнал об этой проблеме, я создал специальный профиль подготовки для идентификатора приложения .release и установил его на свой телефон — и push-уведомления заработали! - person MikeQ; 11.04.2010