Получение ошибки из push-уведомления - программирование
Подтвердить что ты не робот

Получение ошибки из push-уведомления

В моем приложении мне нужны push-уведомления. Я выполняю все инструкции из документов push push-уведомлений. Но я получил сообщение от Push Notification:

Fail To Register For Remote Notifications With Error:
  Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
  entitlement string found for application" UserInfo=0x2340a0
  {NSLocalizedDescription=no valid 'aps-environment' entitlement string
  found for application}

Что я делаю неправильно?

4b9b3361

Ответ 1

Создайте новый профиль подготовки после включения Push, и он будет работать!

Ответ 2

Я использую Xcode 6.1.1

Вам не нужно удалять или воссоздавать что-либо. Вам просто нужно сделать Xcode обновлять активные сертификаты (включая новый сертификат push push).

Просто перейдите в Xcode > Настройки > Учетные записи > выберите свою учетную запись > выберите команду > Просмотреть сведения

Нажмите кнопку Обновить в левом нижнем углу. (Также проверьте свою подпись кода в настройках сборки)

enter image description here

Ответ 3

У меня была одна и та же проблема.

Я решил убедиться, что в Встроенные настройки, Идентификация подписи кода для отладки установите правильный профиль Provisioning Profile

, в котором вы активировали push-уведомления.

Ответ 4

Во-первых, вам нужно убедиться, что вы используете идентификатор приложения без шаблона. Затем вам нужно включить это приложение для push-уведомлений для разработки.

Проверьте этот учебник, например.

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

Ответ 5

Это заставило меня сходить с ума. Я перекрестно проверил все, но все равно получал ту же ошибку. Пробовал все другое решение, данное в Интернете. Однако, это сделало трюк для меня. Я создаю файл .mobileprovision перед включением APNS. Это была настоящая ошибка. Разрешение этой проблемы:

  • Создать идентификатор приложения
  • Включить APNS
  • Затем создайте файл Provision

Если вы ранее создали профиль предоставления услуг, и вы включили APNS, вы должны удалить файл инициализации всюду в своей системе (XCode, keychain, iTuneConnect). Затем снова создайте файл инициализации.

Ответ 6

Я только что рассмотрел эту проблему. Хотя, вероятно, многое происходит, вот что я узнал.

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

Как только я удалил профиль обеспечения с портала и устройства, я сделал новый, используя измененный идентификатор приложения. Скачав его, бросил его на свое устройство, прошу поблагодарить вас, мэм, это сработало. Надеюсь, это поможет людям в будущем!

Ответ 7

Это просто решило это для меня, поэтому я поделюсь. Если вы обновите свой идентификатор приложения, вы должны удалить профиль с вашего устройства, xcode и developer.apple.com. Затем создайте новый соответствующий профиль обеспечения, который будет обновлен с помощью новых параметров идентификатора приложения. Лучше всего назвать его чем-то другим, так что вы знаете, что выбираете правильный.

Ответ 8

Первое, что вам нужно запустить applcaiton в устройстве.

Это произойдет в xcode 3.2.6. Потому что, когда вы получаете все идеально. Но ваше приложение не регистрируется в вашем iphone, ipad или ipod. Вам необходимо сгенерировать файл Entitlement.plst.

  • Шаг: сначала выберите проект в xcode, создайте файл. Выберите файл с кодовым именем с именем ititle.plist(имя по умолчанию).
  • Поместите его в папку ресурсов.
  • Щелкните правой кнопкой мыши в виде редактора xml.
  • Затем откройте файл обеспечения, например your_apllicationName.mobileprovision(который вы создали для сервера Apns) в текстовом режиме.

Теперь скопируйте в свой файл прав следующие строки из следующего профиля:

<key>application-identifier</key>
<string>xyz.com.company_name.app_name</string>
  <key>aps-environment</key>        
            <string>development</string>
    <key>get-task-allow</key>   
<true/>
    <key>keychain-access-groups</key>   
<array>
        <string>xyx.*</string>      
    </array>
  • Сохраните файл права .plist.
  • Запустите приложение, которое вы сообщите сервером Apns.

Ответ 9

enter image description here

Сделайте профиль прав. Можете ли вы не настроить профиль.

Ответ 10

Для меня → перейти к настройкам проекта → целевая программа → Возможности

включить Push-уведомления!

Ответ 11

Просто убедитесь, что вы используете специальный сертификат сертификата

перейти к: https://developer.apple.com/ios/manage/provisioningprofiles/index.action проверьте статус вашего сертификата предоставления, в худшем случае просто создайте новый, загрузите его и снова присвойте его своему проекту.

Убедитесь, что какой тип обеспечения вы используете, "разработка" или "распространение"

Ответ 12

У меня такая же ошибка в XCode 4.6.1, она работала для меня, тогда я удаляю предыдущие профили APNS с Mac и повторно загружаю профиль APNS Provisioing из центра участников. В настройках сборки в целевом режиме идентификация подписи кода должна выполняться только в режиме отладки, так как разработчик iphone для выпуска помещает как нуль или удаляет разработчика или дистрибутив.

Ответ 13

У меня тоже такое. Вот как я решил.

1) Удаленные профили подготовки в ~/Library/MobileDevice/Provisioning Profiles

2) Удаленные профили из учетной записи разработчика

3) Созданы и установлены новые профили

Обратите внимание, что регенерация профилей не решилась.

Ответ 14

ok, немного неловко, но иногда вы часами тратите на самые идиотские ошибки -

поэтому я запускаю приложение в режиме DEBUG вместо AD-HOC.

чтобы изменить это, do:

схема → Изменить схему...

выберите "Выполнить" слева и выберите Ad-Hoc dist в разделе Конфигурация сборки.

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

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

enter image description here

Ответ 15

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

Вам нужно обработать отдельный закрытый ключ как файл p12, чтобы подготовить файл pem, и этот закрытый ключ создается в приложении keychain, когда вы создаете файл .certSigningRequest. Таким образом, эта CSR может быть повторно использована для одного приложения по истечении срока действия, но для любого другого приложения требуется отдельный.