Apple push-уведомления - ни одна действующая «aps-среда» не пробовала все решения, которые я видел в Интернете?

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

Что, по моему мнению, мне нужно сделать (из чтения опыта других людей с этим): 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) depth=1 /C= US/O=Entrust, Inc./OU=www.entrust.net/rpa включено по ссылке/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority — ошибка проверки L1C: число = 20: невозможно получить сертификат местного эмитента .....

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

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

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

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

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

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


person nflacco    schedule 23.10.2011    source источник
comment
Итак, ваша проблема в том, что приложение не может зарегистрироваться для отправки? Я сбит с толку, поскольку вы упоминаете множество несвязанных факторов, таких как сертификаты SSL.   -  person August Lilleaas    schedule 24.10.2011
comment
Да это верно. Я только что упомянул другие вещи, чтобы подтвердить, что сертификат действительно работает с APN, и подпись кода для подтверждения правильного профиля подготовки используется для приложения.   -  person nflacco    schedule 25.10.2011


Ответы (2)


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

foo.bar рассматривается как foo.bar.* (что не разрешено)

у вас должен быть foo.bar.xxx

введите здесь описание изображения

person nflacco    schedule 29.11.2011
comment
что вы подразумеваете под этим ответом? что я должен переименовать или изменить - person Omar Freewan; 12.09.2012

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

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

person AndrewS    schedule 29.11.2011