xcode8打出的包,为什么收不到推送消息。

突然发现xcode8工程,注册远程通知后拿不到deviceToken。
首先呢,我们先比较一下xcode7,xcode8打开推送的开发后
所发生的事情
xcode7



xcode8


xcode8在打开时,会在entitlement添加

<key>aps-environment</key>
<string>production</string>

字段
(已经有entitlement文件的话,会直接加入该字段,没有的话会新增entitlement文件)


这里有个问题是APS Environment的环境怎么是development的,这个不用担心了。苹果已经做了处理:也就是说会依据我们所选的证书配置成自动转换了
dis证书的话,就对应:

<key>aps-environment</key>
<string>production</string>

那么我该如何查看environment中的aps-environment配置的环境是否正确呢,首先我们查看包中的environmen文件,这是最直接的。要是找不到怎么办呢,不用担心。

codesign --display --entitlements :- ./test.app

codesign --display --entitlements :- 加上你的.app路径,回车就好了。
信息如下了:

<dict>
    <key>application-identifier</key>
    <string>********.********</string>
        <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    <key>com.apple.developer.team-identifier</key>
    <string>**********</string>
    <key>get-task-allow</key>
    <false/>
</dict>

that's all.

推荐阅读更多精彩内容