您的APNs提供商需要访问此SSL证书的私钥.没有它,Apple的APN网关将拒绝任何和所有连接尝试.您的提供商不需要拥有您的配置文件 – 此APNs证书与用于对iOS应用程序进行代码签名的机制完全分开,即服务器只需要服务器证书,而应用程序需要代码签名证书配置轮廓.这两个项目不相交,也不相互交换数据.
确实需要重新发布您的配置文件(开发,Ad-Hoc分发和App Store分发),但这是专门为每个配置文件添加aps-environment权利,允许使用这些配置文件签名的应用程序进行连接与APNs环境.为了绝对清楚,重新发布这些配置文件不会也不应该在配置文件中的任何位置添加您的APN SSL证书…您的应用程序代码不需要以任何方式利用此证书,并且会导致应用程序的大小略微增加.
您可以通过打开终端,复制和粘贴以下内容来检查您当前的配置文件是否包含aps-environment权利,注意更新特定.mobileprovision的路径:
/usr/libexec / PListBuddy -c’打印:权利’/ dev / stdin<<< $(security CMS -D -i /path/to/your/application.mobileprovision) 这个命令做了两件事:
>使用OS X中的安全工具从-i参数后面标识的.mobileprovision文件中提取pList内容,并将所有这些内容传递给…
> PListBuddy将EnTitlements键的全部内容打印到屏幕上.
尚未启用推送通知的基本开发配置文件的输出将类似于以下内容:
Dict { get-task-allow = true com.apple.developer.team-IDentifIEr = ABC1DEF2G3 application-IDentifIEr = XYZW1ABC2D.com.mycompany.niftyapp keychain-access-groups = Array { XYZW1ABC2D.* }}
虽然尚未启用推送通知的基本Ad-Hoc或App Store distribution的输出类似于:
Dict { get-task-allow = false com.apple.developer.team-IDentifIEr = ABC1DEF2G3 application-IDentifIEr = XYZW1ABC2D.com.mycompany.niftyapp keychain-access-groups = Array { XYZW1ABC2D.* }}
现在您已经为应用程序的AppID颁发了APNs证书,您需要单步执行并重新发布开发,临时和分发配置文件,以便为每个配置文件添加aps-environment权利.
>导航到Certificates,Identifiers,and Profiles工具,找到与此应用程序关联的配置文件之一.
>单击“编辑”按钮并浏览向导的每个步骤 – 您不必对先前定义的设置进行任何更改,只需重新发布当前配置文件即可!
>单击向导末尾的“下载”按钮.
>将更新后的配置文件拖放到Dock上的Xcode图标上进行安装.
如果您在这些新文件上再次运行同一组终端命令(请记住在必要时更新新.mobileprovision的路径!)现在您将看到应用程序权利中出现aps-environment密钥:
Dict { get-task-allow = true aps-environment = development com.apple.developer.team-IDentifIEr = ABC1DEF2G3 application-IDentifIEr = XYZW1ABC2D.com.mycompany.niftyapp keychain-access-groups = Array { XYZW1ABC2D.* }}
此新密钥有两个值:
> aps-environment = development – 这将仅显示在Development Provisioning Profiles上,并允许使用iPhone Developer证书签名的应用程序,并且只能与SandBox APNs环境连接
> aps-environment = production – 仅在分发配置文件(Ad-Hoc或App Store)上显示,允许使用iPhone distribution证书签名的应用程序与Production APNs Environment连接
根据您用于签署构建的证书,确定您的应用将连接到哪个APN网关,并获取推送令牌以及您的应用将从哪个网关接收推送消息.开发人员在推送通知方面最常见的错误之一是应用程序签名与服务器连接到Apple的APN网关的方式不匹配:
>使用开发证书签名的应用程序只能在提供商还将开发APNs SSL证书连接到SandBox APNs网关并在其生成的有效负载中使用沙箱设备令牌时成功协商APN并接收推送消息.
>使用分发证书签名的应用程序只能在提供商还将生产APNs SSL证书连接到生产APNs网关并在其生成的有效负载中使用生产设备令牌时成功协商APN并接收推送消息.
试一试,让我们知道事情的进展!
总结以上是内存溢出为你收集整理的为什么我无法将APN开发iOS类型证书添加到配置文件全部内容,希望文章能够帮你解决为什么我无法将APN开发iOS类型证书添加到配置文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)