Apple push-уведомления - ни одна действительная «aps-среда» не пробовала все решения, которые я видел в Интернете? - PullRequest
11 голосов
/ 23 октября 2011

Я рву волосы, пытаясь заставить работать push-уведомления!Я следую этому уроку , но безрезультатно.Я несколько раз удалял xcode, переделывал весь сертификат Apple Dev, несколько раз очищал свою цепочку ключей входа.Это помогло решить несколько вопросов, но в конце концов я все еще застрял.

Что я думаю, что мне нужно сделать (из опыта других людей в этом): 1) Мой сертификат openssl и ключ должны бытьпоговорить с сервером Apple 2) У идентификатора приложения с этим сертификатом openssl связан профиль обеспечения.3) Сборка (в xcode) должна иметь соответствующий профиль обеспечения, связанный с ней 4) Идентификатор сборки (в xcode) должен иметь такой же текст, как и идентификатор приложения с профилем обеспечения 4) ???

Насколько я могу судить, все в порядке:

  1. Мой сертификат ssl + ключ красиво общаются с сервером Apple (не обращая внимания на ошибку, я все равно получаю приглашение):

MacBook-Pro: apple_dev_certification nflacco $ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -key xxx.pem -cert xxx.pem Введите пароль для xxx.pem:CONNECTED (00000003) глубина = 1 / C = US / O = Entrust, Inc./OU=www.entrust.net/rpa включена в качестве ссылки / OU = (c) 2009 Entrust, Inc./CN=Entrust Центр сертификации -Ошибка проверки L1C: num = 20: невозможно получить сертификат локального эмитента .....

2,3,4) Когда я создаю новый проект, он никогда не получает правильный ip приложения (build)настройки-> идентификатор информационного пакета).Если мой профиль обеспечения совпадает с «com.xxx», тогда приложение всегда будет «com.xxx.FOO», поэтому выбран профиль обеспечения IOS Team по умолчанию.Я так запускаю приложение и получаю:

2011-10-22 22: 42: 45.086 VVV [3552: 707] Не удалось получить токен, ошибка: Ошибка Domain = NSCocoaErrorDomain Code = 3000 "для приложения не найдена допустимая строка прав доступа "aps-environment" "UserInfo = 0x16d140 {NSLocalizedDescription = не найдена допустимая строка прав доступа" aps-environment "для приложения}

4 продолжение) Я хочу использовать свою подготовкупрофиль, который использует мой идентификатор приложения с включенным push, поэтому я изменяю идентификатор приложения на com.xxx и выбираю подходящий профиль в опции подписи кода в меню сборки.Установите его на мой iPhone, тоже самое: (

Единственное, о чем я могу подумать:

  • Мой профиль обеспечения неверный? Я несколько раз создавал новый,удалил все существующие в органайзере xcode, но это не помогло.
  • Код все еще подписывается с помощью профиля команды вместо моего нового? Есть ли способ обеспечить это?

Любые идеи о том, что я должен делать здесь? Это не может быть таким сложным. Должен ли я просто стереть мой HD и переустановить с нуля и надеяться, что он работает?

Ответы [ 2 ]

14 голосов
/ 29 ноября 2011

Вы знаете, что это было? Идентификатор моего приложения.

foo.bar рассматривается как foo.bar. * (Что недопустимо)

Вы должны иметь foo.bar.xxx

enter image description here

0 голосов
/ 29 ноября 2011

Я думаю, что для push вам нужен файл Entitlements.plist, имеющий ключ aps-environment, со значением «production».Я только что закончил получать это работает (снова) для моего приложения.Некоторые другие ответы здесь помогли мне открыть окно «Органайзер» после того, как я сделал Архив, но затем я получил вашу ошибку.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...