apns token 失效-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

apns token 失效

2018-06-03 21:45:06 968
云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(1)
  • 2018-06-05 07:06:01
    已采纳

    详细解答可以参考官方帮助文档

    1. 检查手机端

    • App允许接收通知。
    • App在后台运行,因为在iOS系统中,如果App在前台,就不会收到弹窗和通知中心的通知(iOS 10+,前台通知触发回调处理完成后,调用completionHandler可实现前台通知弹出,具体参考iOS 10通知适配 - 4.4.2)。

    检查手机端的推送配置,可以通过如下的方法来判断手机端是否能从苹果APNs服务端拿到Device Token。

    1. - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    2. {
    3. NSLog(@"didFailToRegisterForRemoteNotificationsWithError %@", error);
    4. }

    如果配置不对,就会报错。

    • 检查代码中是否有调用unregisterForRemoteNotifications接口(远程推送注销接口),设备调用该接口后无法收到苹果APNs推送通知。

    2. 检查推送模式

    • iOS的通知推送,走的是苹果官方的APNs通道,本身区分开发环境生产环境

    • 开发时安装到手机的App,只能以开发模式推送,使用APNs Sandbox推送证书。

    • 正式发布后,通过App Store安装的App,只能以生产模式推送,用APNs Production推送证书;生产环境通知测试,参考移动推送iOS SDK: Ad Hoc App如何进行生产环境推送通知测试?

    • 如果推送模式选错,或者推送证书传错,苹果的APNs服务端就会认为该Device Token无效,无法推送通知。

    • OpenAPI的推送高级接口,可以通过设置iOSApnsEnv参数选择推送模式。

    3. 检查IDE设置

    Xcode 8开始,会出现一个推送开关,请保证它是处于打开状态xcode

    若没有打开推送开关,会触发deviceToken注册错误回调:didFailToRegisterForRemoteNotificationsWithError:,提示下述错误:

    1. Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x1740741c0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串

    4. 推送证书合法性校验

    5. 设备关机

    • 设备关机后再推送通知,苹果APNs只保留最后一条通知,当重新开机后只能收到最后一条通知。
    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

相似问题
最新问题
推荐课程