美文网首页iOS_踩坑笔记iOS 知识库iOS Developer
iOS关于友盟推送消息收不到的错误排查思路

iOS关于友盟推送消息收不到的错误排查思路

作者: z小志 | 来源:发表于2018-04-28 15:36 被阅读32277次

    最近经常有人问集成友盟推送收不到推送消息, 总结后发现主要为两个原因:
    1、应用环境
    2、推送证书
    3、后台production_mode参数

    首先确认你当前应用的环境(开发or生产)

    测试环境(开发环境)

    1、首先在友盟后台可根据添加deviceToken来直接推送,如果可以收到,这说明你的开发环境的证书是没问题的,如果收不到就是你的证书有问题,或者deviceToken添加错误;
    2、如果在开发环境你收不到后台给你推送的消息而你自己在后台测试是可以收到的,那99%的可能就是后台把production_mode 设置成为了true (默认) 即为生产环境(正式环境),修改即可;

    正式环境(生产环境)

    1、首先确保开发环境是可以收到推送;
    2、如果在生产环境你收不到后台给你推送的消息,那99%的可能就是后台把production_mode 设置成为了false 即为生产环境(正式环境),修改即可;

    注:友盟官网 关于production_mode 参数的介绍

    "production_mode":"true/false" // 可选,正式/测试模式。默认为true
                                     // 测试模式只会将消息发给测试设备。测试设备需要到web上添加。
    

    附:OC 以及 Swift 获取友盟deviceToken的方法

        // OC
        NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
        stringByReplacingOccurrencesOfString: @">" withString: @""]
        stringByReplacingOccurrencesOfString: @" " withString: @""]);
    
        //Swift
        func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
            let tokenData = NSData(data: deviceToken)
            let deviceToken = tokenData.description.replacingOccurrences(of:"<", with:"").replacingOccurrences(of:">", with:"").replacingOccurrences(of:" ", with:"")
        }
    

    相关文章

      网友评论

      • _码奴:大哥你生产环境写错一个地方:“2、如果在生产环境你收不到后台给你推送的消息,那99%的可能就是后台把production_mode 设置成为了false 即为生产环境(正式环境),修改即可;”,false应该是测试环境
        _码奴:@z小志 客气,我这不是也是来你这里学习了吗
        z小志:@_码奴 好的。我改下。谢谢啦

      本文标题:iOS关于友盟推送消息收不到的错误排查思路

      本文链接:https://www.haomeiwen.com/subject/fvpglftx.html