返回常见问题总目录

客户端日志的重要性

一般出现问题时,首先要做的便是看看此时的日志信息,可以找到相关的提示和报错。
如果需要我们帮忙分析问题,提供完整的日志信息 也是避免无效沟通的关键

开启客户端日志的接口

Android:

JPushInterface.setDebugMode(true); // 设置开启 JPush 日志,发布时请关闭日志
JMessageClient.setDebugMode(true);//设置开启 JMessage 日志,发布时请关闭日志

iOS:

[JPUSHService setDebugMode];//设置开启 JPush 日志
[JMessage setDebugMode];//设置开启 JMessage 日志

JPush 文档说明点我

查看客户端日志的具体方法

iOS

  1. 将你的手机连上Xcode;
  2. 在Xcode上面的菜单栏上,选window->device;
  3. 点击你的设备,在下方有个三角箭头,点击下,就能看到打印了。

详细图示 点我查看

Android

1.usb连接手机
2.进入终端(windows系统下的cmd)执行adb logcat -f /sdcard/logjpush.txt 命令
如果adb命令没用,说明你的环境变量里面没有配置Android环境变量,如何配置请自行Google
3.启动demo工程
4.退出adb命令,随便进入一个磁盘。执行 adb pull /sdcard/logjpush.txt (或者您自己去手机的sdcard找到logjpush.txt这个文件拷贝出来)
5.将logjpush.txt上传。

iOS调用接口开启后依旧没有日志?

  • 检查是否又调用了关闭日志的接口

    [JPUSHService setLogOFF];//设置关闭 JPush 调试信息,无法全部关闭,建议发布时调用
    [JMessage setLogOFF];//设置关闭 JMessage 调试信息,无法全部关闭,建议发布时调用
  • 检查是否做了屏蔽日志的操作 「参考开发者的分享 第八点

    1. 屏蔽的操作如下:
      Xcode8里 Edit Scheme-> Run -> Arguments,
      在Environment Variables里边添加 OS_ACTIVITY_MODE = Disable

    2. 若需要操作 1 来屏蔽一些无用日志而有用的日志依旧输出,可以自定义一个宏定义,来做日志输出。

      #ifdef DEBUG
      

#define DDLOG(...) printf(" %s\n",[[NSString stringWithFormat:VA_ARGS]UTF8String]);
#define DDLOG_CURRENT_METHOD NSLog(@"%@-%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd))

#else

#define DDLOG(...) ;
#define DDLOG_CURRENT_METHOD ;

#endif
```