Я работаю над этим некоторое время. Я знаю там массу статей, и многое узнал обо всем этом.
Я создал свою разработку и создание SSL таким же образом. Разработка подключается к ssl://gateway.sandbox.push.apple.com: 2195 Продукция подключается к ssl://gateway.push.apple.com: 2195 Кажется, что соединения работают нормально.
Что касается приложения. Разработка: Когда я запускаю его прямо на свое устройство с xCode, он запускает версию разработки. Приложение успешно записывает токен разработки в базу данных. Затем я запускаю службу для отправки push-уведомления, и он доставляется правильно. Msg успешно доставлен.
Ad-Hoc:
Когда я создаю архив и экспортирую его для распространения Ad-hoc, я дважды проверяю содержимое пакета codesign -dvvvv --entitlements - Elepago.app
и вижу, что aps-environment правильно настроена на производство. Я упаковываю его и загружаю на свое устройство через iTunes. Когда приложение запускается, я вижу новый маркер производства, записанный в базе данных. Таким образом, среда должна быть правильно настроена. Когда я отправляю push-уведомление на производственный ключ (то же самое, что и разработка, просто изменяя ключ SSL.pem и сервер), он говорит, что он успешно доставлен. Однако он никогда не достигает устройства!
Эта проблема сводит меня с ума. Я только что прошел и очистил свой сертификат распространения и перестроил его, используя совершенно новую CSR. Я также обновил все профили подготовки, чтобы использовать этот новый сертификат. [Любые идеи о том, как эти сертификаты привязаны к приложению, кроме того, что я уже проверяю для приложения aps-environment.]
Любое понимание будет принята с благодарностью.