友盟官网:
https://www.umeng.com
集成友盟SDK准备,获得AppKey
http://dev.umeng.com/analytics/ios-doc/integration#1
iOS 消息推送(Message)SDK使用指南:
http://dev.umeng.com/analytics/ios-doc/integration
http://blog.csdn.net/songhongri/article/details/39482067
友盟推送后台:
http://push.umeng.com/entrance
iOS10后友盟推送报错,在iOS9设备上获取到device_token但接不到推送消息,iOS10上报错code=3000
解决方法:
iOS10来了,今天特别适配了iOS10,讲一下其中的坑,在iOS10中,报如下错误:Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x15f81360 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}
在iOS9中可以获取到device_token,但测试时总发送失败或者提示device_token无效或者提示无法验证该设备的有效性,不保证消息能够发送成功。
苹果的推送有了修改,需要在项目中配置一下。首先要更新友盟的推送的SDK,然后在TARGETS下面找到你的项目,在右边选择Capabilities,讲push Notifications和background Modes两个开关打开,并在background Modes目录下的remote notifications选中。这个时候再看最左边你的项目目录里面出现了一个.entitlements文件。点击该文件,添加键值对。key:APS Environment,value:development。即可。这时,在iOS10上出现的推送问题就解决了。
至于在iOS9上的问题,那是因为苹果出了iOS10之后,苹果推送的后台有时会提供给你的device_token是生产模式下的device_token,这时苹果的一个bug。如果总提示发送失败或者提示device_token无效或者提示无法验证该设备的有效性,不保证消息能够发送成功等,在保证device_token是最新的device_token的情况下,使用单播的方式,在生产模式下向该device_token发送推送消息。就可以接收到消息了。完美解决。这是苹果的bug,不用管它。如果这样你还没接收到消息,那就是你的问题或者友盟的问题了。