使用证书将pushsharp推送通知到iOS错误

时间:2019-05-17 09:39:05

标签: ios xamarin push-notification apple-push-notifications pushsharp

大家好,我是iOS开发的新手,我尽力获得推送通知。我找到了pushsharp,并正在使用本教程

Tutorial I a using

我使用Windows应用程序代替了Web应用程序,并添加了最新的pushsharp。代码生成并运行,但是出现以下异常

Exception

错误发生在以下位置 Error location in code

我已经吊销了证书并重新创建了好几次,并且我还尝试导出证书和密钥。两者都给我同样的错误。

创建证书时,我在Apple门户中为iOS开发创建了一个证书。

这是我到目前为止尝试过的 根据杰克华的评论,我尝试了以下方法

登录到Apple门户并删除

  • 应用程序ID
  • 证书
  • 配置文件

Xamarin Visual Studio没有提供预期的配置文件

从干净的石板开始

  1. 钥匙串访问
  2. 向证书颁发机构请求证书(代码签名)
  3. 保存证书签名请求
  4. 注册了一个具有捆绑标识符和推送服务的新应用
  5. 添加新的配置文件
  6. 创建证书
  7. 使用创建的证书签名请求(第3步)
  8. 下载证书
  9. 双击证书以安装到钥匙串中 (钥匙串现在有新条目)
  10. 右键单击导出p12 (如果我不这样做,则无法在“配置文件”部分中看到证书)
  11. 选择证书并创建配置文件 重新打开Xamarin Studio,配置文件显示在项目属性中

现在创建APNs开发证书

  1. 钥匙串访问
  2. 从证书颁发机构(APN)请求证书
  3. 保存证书签名请求
  4. 选择创建的应用程序ID(第4步)
  5. 编辑应用程序ID
  6. 在推送通知下,选择创建证书
  7. 选择认证签名请求(步骤14)
  8. 下载证书
  9. 双击证书进行安装 (现在在钥匙串证书中显示两个条目,一个用于代码签名,另一个用于APN)
  10. 在钥匙串访问中选择APNs证书并导出.p12文件
  11. 将此包含在我的示例项目中 (根据带有相应设备令牌的youtube视频创建)

我仍然收到相同的Apns连接错误。

我想念什么?

基于杰克华的评论,我进一步尝试了这一尝试。 我已将验证标志设置为false,但仍然收到连接错误,但是内部异常是“无效的设备令牌”

经过一些研究后取得了一些进展,我拥有的设备令牌中有空格,删除了空格,但我没有收到任何错误,但是通知从未显示在我的iPad上。我正在使用沙盒和iOS开发证书,配置文件。想知道这是开发中的已知问题,它将在生产中起作用。任何帮助都非常感谢大家!

1 个答案:

答案 0 :(得分:1)

创建ApnsConfiguration对象时会生成该错误消息,请参见source code

 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");

不是正在创建推送认证...您正在遵循的教程正在创建分发配置配置文件,该配置文件可让您将应用提交到Apple App Store (不是通知)。

您可以按照this document生成通知证书,并配置您的应用以启用推送通知功能。

引用:send-push-notification-to-ios-pushsharp-certificate