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

Ionic Capacitor推送通知:SNS返回APNS平台令牌无效求助

排查SNS生产环境APNS令牌无效的关键配置遗漏

以下是你可能遗漏的配置项,按优先级排查:

  • APNS环境与SNS平台应用不匹配
    用.p8密钥创建SNS平台应用时,必须选择对应环境:生产环境的SNS平台应用要设置为Production,而非Sandbox。Capacitor在生产打包(App Store/Ad Hoc分发)时获取的是APNS生产令牌,若SNS平台应用配置为Sandbox,会直接判定令牌无效。

  • .p8密钥的权限与配置错误

    • 确认Apple Developer后台的.p8密钥已启用APNS服务权限,且未被撤销或过期。
    • 在SNS创建平台应用时,需准确填写Team ID(Apple开发者团队ID)、Key ID(.p8密钥的ID),并完整上传.p8密钥文件内容,不能有多余空格或换行。
    • 确保SNS平台应用绑定的iOS Bundle ID与Apple Developer后台的App ID、Capacitor项目配置的appId完全一致。
  • Capacitor Push插件的生产环境配置

    • 检查Capacitor项目的capacitor.config.ts,确认Push插件未强制设置为开发环境:
      plugins: {
        Push: {
          presentationOptions: ["badge", "sound", "alert"],
          // 不要设置forceSandbox: true,生产环境需移除或设为false
        }
      }
      
    • 验证Xcode项目配置:确保Signing & Capabilities中已启用Push Notifications,且使用的Provisioning Profile为生产环境(App Store/Ad Hoc类型),包含推送权限。
  • 终端创建时的参数错误

    • 确认创建SNS终端时使用的是生产环境的平台应用ARN,而非开发环境的ARN。
    • 检查Capacitor获取的设备令牌是否完整传递:避免令牌被截断、转义或添加多余字符,可在日志中打印令牌后直接对比APNS返回的有效令牌格式(无空格的十六进制字符串)。
  • Apple App ID与Provisioning Profile配置

    • 在Apple Developer后台,确保目标App ID已开启Push Notifications服务,且生产环境的推送配置状态为“Enabled”。
    • 确认生产环境的Provisioning Profile已关联该App ID,且包含推送权限(可在Xcode中查看Provisioning Profile的详情)。

内容的提问来源于stack exchange,提问作者Jordin Vell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:01:31