You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Testflight与Expo Go通知无法正常使用问题求助

排查Testflight推送失效但APK正常的问题

以下是针对你遇到的Testflight无法接收通知、但APK正常的问题,可逐步排查的方向:

  • 确认APNs环境与Firebase配置匹配
    Testflight使用APNs沙盒环境,而Android APK使用FCM生产环境。检查Firebase控制台中iOS应用的APNs配置:

    • 若使用证书,需确保上传的是包含沙盒+生产环境的双重证书,而非仅生产证书;
    • 若使用APNs密钥,需确认密钥已启用“Apple Push Notification service (APNs)”权限,且关联的App ID正确覆盖Testflight对应的bundle ID。
  • 直接验证APNs沙盒推送
    跳过Firebase,直接向Testflight设备的令牌发送沙盒推送,定位问题是否出在转发环节:

    1. 在应用中打印并获取设备的APNs令牌(注意沙盒令牌与生产令牌格式不同);
    2. 使用curl命令测试推送:
      curl -v -d '{"aps":{"alert":"Test Notification","sound":"default"}}' \
      -H "apns-topic: com.your.bundle.id" \
      -H "apns-push-type: alert" \
      -H "apns-expiration: 0" \
      --http2 \
      --cert /path/to/your/sandbox-cert.pem:your-cert-password \
      https://api.sandbox.push.apple.com/3/device/YOUR_DEVICE_TOKEN
      

    如果此测试能收到通知,说明问题出在Firebase的配置或转发逻辑;若仍收不到,需排查设备权限或Apple侧的配置。

  • 检查EAS构建的iOS配置细节
    确认eas.json及应用配置中的关键项:

    • 确保iOS构建的buildConfiguration设置正确:Testflight构建可尝试设置为"buildConfiguration": "Release",同时确认distribution为"store";
    • 在app.json/app.config.js中,验证iOS的infoPlist是否包含推送权限配置:
      "ios": {
        "infoPlist": {
          "UIBackgroundModes": ["remote-notification"],
          "NSNotificationUsageDescription": "需要推送权限接收通知"
        }
      }
      
    • 确认Expo Notifications模块已正确初始化,特别是iOS端是否请求了通知权限:Notifications.requestPermissionsAsync()。
  • 查看设备与服务端日志

    • 在Testflight设备上,通过Xcode连接设备查看控制台日志,过滤关键词APNs或应用bundle ID,查找推送接收失败的错误信息(如令牌无效、权限被拒等);
    • 检查Firebase控制台的云消息日志,查看推送请求的状态:若显示“已发送”但设备未收到,可能是APNs令牌与环境不匹配;若显示“失败”,根据错误码排查(如InvalidRegistration表示令牌无效)。
  • 确认Testflight构建的签名配置
    检查EAS构建使用的Provisioning Profile是否包含推送权限(Push Notifications),且Profile对应的证书与Firebase中上传的证书一致。可通过Apple Developer Portal查看Provisioning Profile的权限详情。

内容的提问来源于stack exchange,提问作者Đorđije Lazarević

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:12:34