pushsharp push-уведомление об ошибке iOS с сертификатом

Привет всем, я новичок в разработке iOS, я приложил все усилия, чтобы получать push-уведомления. Я нашел pushsharp и использовал этот учебник

Учебное пособие по использованию

Я использовал приложение Windows вместо веб-приложения и добавил последнюю версию pushsharp. Код создается и запускается, но я получаю следующее исключение

Исключение

Ошибка возникает в следующем месте  Место ошибки в коде

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

Когда я создаю сертификат, я создал его для разработки под iOS на портале Apple.

Это то, что я пробовал до сих пор. Основываясь на комментарии Джека Хуа, я попробовал следующее

Вы вошли на портал Apple и удалили

  • Идентификаторы приложения
  • Сертификаты
  • Профили обеспечения

Визуальная студия Xamarin не имеет ожидаемого профиля подготовки

Начиная с чистого листа

  1. Доступ к цепочке для ключей
  2. Запросить сертификат в центре сертификации (подпись кода)
  3. сохранить запрос на подпись сертификата
  4. Зарегистрировали новое приложение с идентификатором пакета и включенными push-сервисами
  5. Добавить новый профиль обеспечения
  6. создать сертификат
  7. Используйте созданный запрос на подпись сертификата (шаг 3)
  8. скачать сертификат
  9. Дважды щелкните сертификат, который нужно установить в связку ключей (теперь в связке ключей добавлена ​​новая запись)
  10. Щелкните правой кнопкой мыши экспорт p12 (если я этого не сделаю, я не смог бы увидеть сертификат в разделе профилей обеспечения)
  11. Выберите сертификат и создайте профиль подготовки. Повторно откройте Xamarin studio, и профиль подготовки отобразится в свойствах проекта.

Теперь создайте сертификат разработки APN

  1. Доступ к цепочке для ключей
  2. Запросить сертификат в центре сертификации (APN)
  3. Сохраните запрос на подпись сертификата
  4. Выберите созданный идентификатор приложения (шаг 4)
  5. Изменить идентификатор приложения
  6. В push-уведомлении выберите создать сертификат
  7. Выберите запрос на подпись сертификата (шаг 14)
  8. Скачать сертификат
  9. Дважды щелкните сертификат, чтобы установить его (теперь в сертификатах Keychain отображаются две записи, одна для подписи кода, а другая для APN)
  10. Выберите сертификат APNs в доступе к связке ключей и экспортируйте файл .p12.
  11. Включите это в мой пример проекта (Создайте в соответствии с видео на YouTube с соответствующим токеном устройства)

Я по-прежнему получаю ту же ошибку подключения Apns.

Что мне не хватает?

Основываясь на комментарии Джека Хуа, я предпринял следующую попытку. Я установил для флага проверки значение false, я все еще получаю сообщение об ошибке подключения, однако внутреннее исключение - «Недействительный токен устройства».

После некоторых исследований был достигнут некоторый прогресс, в токене устройства, который у меня был, есть пробелы, удаляющие пробелы, я не получаю никаких ошибок, однако уведомление никогда не отображается на моем iPad. Я использую сертификаты разработки Sandbox и iOS, профили обеспечения. Интересно, является ли эта проблема известной в разработке и будет ли она работать в производственной среде. Любая помощь приветствуется, ребята !!!


person Abe    schedule 17.05.2019    source источник
comment
Вы создали сертификат APNS? medium.com/@ankushaggarwal/ Это нужно, если вы хотите получать уведомления   -  person lawiluk    schedule 17.05.2019
comment
Да, я использовал следующий учебник для его создания, но, очевидно, я создал учебное пособие для разработки (iOS Development) support.magplus.com/hc/en-us/articles/   -  person Abe    schedule 17.05.2019


Ответы (1)


Это сообщение об ошибке создается при создании объекта ApnsConfiguration, см. исходный код.

 if (!Regex.IsMatch (commonName, "Apple.*?Push Services")
                    && !commonName.Contains ("Website Push ID:"))
                    throw new ArgumentOutOfRangeException ("Your Certificate is not a valid certificate for connecting to Apple's APNS servers");

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

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

См .: send-push-notification-to-ios-pushsharp-certificate

person Jack Hua    schedule 20.05.2019
comment
Привет, Джек, спасибо за комментарий. Я обновил свой вопрос тем, что я пробовал до сих пор. Мне все еще не повезло, у меня такая же ошибка подключения. Я начал с чистого листа, не зная, что мне не хватает. Есть предположения? - person Abe; 20.05.2019
comment
@Abe Присваивается ли сертификация в вашей цепочке ключей префиксом Apple Development iOS Push Services? Правильный ли путь .p12? Имя .p12 в проекте такое же, как у только что созданного? - person Jack Hua; 21.05.2019
comment
Предваряется ли сертификация в вашей цепочке ключей префиксом Apple Development iOS Push Services? Да. Правильный ли путь .p12? Да (я не получаю ошибок пути, и конфигурация создана) Имя .p12 в проекте такое же, как и только что созданное? Когда я сохранил p12, я сохранил его под другим именем. Должно ли совпадать имя, хотя это имеет значение только то, что находится внутри файла. - person Abe; 21.05.2019
comment
@Abe Кажется, нет проблем с вашей push-сертификацией. Можете ли вы попробовать решение в этой ветке ? - person Jack Hua; 21.05.2019
comment
Привет, Джек, я попробовал то, что ты предложил. Я все еще получаю сообщение об ошибке подключения Apns, однако внутренним исключением является недопустимый токен устройства. У меня есть простое приложение, работающее на ipad, опубликованном из xamarin (Visual studio), которое получает токен устройства. Я копирую этот токен устройства в свое приложение Windows Forms и пытаюсь отправить уведомление. Есть предположения? - person Abe; 22.05.2019
comment
Ошибка токена устройства устранена. См. Обновленную информацию по моему вопросу. - person Abe; 22.05.2019