做演示的时候,经常需要测试远程推送功能是否正常。比如你做个App推广演示,想确认通知能不能顺利送到用户手机上,这时候就得看远程推送日志。很多人一开始不知道从哪下手,其实只要摸清路径,查日志并不难。
先搞清楚日志存在哪
远程推送日志通常不会直接显示在设备上,而是由服务器或开发平台记录。如果你用的是苹果APNs或者谷歌FCM这类推送服务,日志一般会出现在对应的后台系统里。比如你在FCM控制台发送了一条消息,可以在“调试”或“报告”页面看到送达状态。
利用Xcode查看iOS推送日志
如果是开发iOS相关的演示内容,连上真机调试时,Xcode的控制台会输出推送相关信息。打开设备管理界面,选择你的iPhone,就能看到实时日志。当收到远程推送时,会出现类似下面的记录:
<APSRemoteNotification> Received notification: {
aps = {
alert = "这是测试通知";
sound = default;
};
}</APSRemoteNotification>
这种原始信息虽然看起来有点乱,但关键字段一目了然,比如alert里的提示文字有没有正确传入。
Android端怎么抓日志
安卓这边常用adb工具来抓取。把手机连上电脑,在命令行输入:
adb logcat | grep -i push
这样能过滤出和推送相关的日志条目。如果你用了第三方推送SDK,比如极光、个推,它们通常会在日志里打上自己的tag,搜包名或SDK名称就能定位问题。
服务器端别忽略
有时候客户端看着没问题,其实是服务器没发出去。这时候得去后端查请求记录。比如用Node.js写的推送接口,可以加点console输出:
console.log('Sending push to:', token);
console.log('Response from FCM:', response);
把这些日志保存到文件或打印到监控面板,一旦推送失败,马上就能看到是认证失败、token无效还是网络超时。
模拟环境也要留痕
做演示前总要反复测试,建议在本地搭建一个简单的日志收集页。比如写个PHP脚本接收推送回调,把每次请求存进txt:
<?php
$data = date('Y-m-d H:i:s') . ' - ' . file_get_contents('php://input');
file_put_contents('push_log.txt', $data . "\n", FILE_APPEND);
echo '{"status":"ok"}';
?>
这样一来,哪怕没有正式后台,也能知道推送到底有没有触发。
实际操作中,很多人卡在“看不见结果”这一步。其实只要把设备、网络、服务器三端的日志都打开,像拼图一样对一遍,问题基本都能定位出来。特别是做现场演示前,提前跑一遍日志检查流程,能避免不少尴尬时刻。