iOS 厂商推送相关问题

最近更新时间:2026-04-13 12:51:26

我的收藏

概况问题

普通消息为什么收不到离线推送?

1. 首先,请检查 App 的运行环境和证书的环境是否一致,如果不一致,则收不到离线推送。
2. 其次,请检查 App 和证书的环境是否为生产环境。如果是开发环境,向苹果申请 deviceToken 可能会失败,请切换到生产环境测试。

自定义消息为什么收不到离线推送?

自定义消息的离线推送和普通消息不同,我们无法解析自定义消息的内容并确定推送的内容,所以默认不推送,如果您有推送需求,需要您在 sendMessage 的时候设置 offlinePushInfodesc 字段,推送的时候会默认展示 desc 信息。

如何关闭离线推送消息的接收?

如果您想关闭离线推送消息的接收,调用 unRegisterPush 即可。

概念解释

APNs、VoIP 和 LiveActivity 有什么区别?

区别如下:
APNs:发送通知提醒用户,集成 TIMPush。
VoIP:音视频通话推送,集成 CallKit 和 TUICallKitVoIPExtension。
LiveActivity:显示实时更新动态,集成 ActivityKit 和 IMSDK(iOS 16 以上支持)。

系统服务问题

iOS 开发环境下,注册偶现不返回 deviceToken 或提示 APNs 请求 token 失败?

该问题是由于 APNs 服务不稳定导致的,可尝试通过以下方式解决:
给手机插入 SIM 卡后使用 4G 网络测试。
卸载重装、重启 App、关机重启后测试。
打生产环境的包测试。
更换其它 iOS 系统的手机测试。

iOS 证书过期怎么处理?

在 IM 控制台单击编辑对应证书,更新 p12 证书即可。注意:请勿删除证书重新创建,重新创建证书 ID 会变化,需要发版本支持更新。

APNs 推送,厂商返回错误码 code: 403, reason: InvalidProviderToken?

客户使用 P8 证书,上报的 Token 和证书不匹配导致厂商验证失败。需要注意以下几点:
客户端生成 regId 的时候,使用的 bundleId 要和服务端推送使用的 bundleId 一致。
teamId 和 keyId 填写准确。
证书要使用正确(检查证书是否为生产环境\\测试环境)。

接入过程问题

收不到推送,且后台报错 "bad devicetoken"。

Apple 的 deviceToken 与当前编译环境有关,请检查:
1. 接入流程中 配置推送参数 的 businessID 是否是对应环境的证书 ID。
2. 控制台创建证书检查:
生产环境证书:上传的证书类型为 Apple Push Notification service SSL (Sandbox & Production),并在 Archive 出 Release 包后进行测试。注意:不可在 Xcode 测试。
开发环境证书:您需要 Archive 出 release 包后进行测试,创建选择正确证书即可。

iOS 注册报错:"errCode":3000,"errMsg":"未找到应用程序的“aps-environment”的授权字符串"

原因1:在 Xcode 项目中未启用推送通知权限,检查 Xcode 配置。开启方法参考:Xcode 添加推送权限



原因2:在应用归属的 AppleID 账号下,对应应用未勾选 Push Notifications 开启远程推送服务。可以查看描述文件是否包含 “aps-environment”, 以及是否对应正确开发/生产环境。开启方法参考:申请 APNs 证书




iOS 接入失败,控制台测试工具返回 Token 与证书不匹配?


iOS 推送证书分正式环境和测试环境,Token 也分正式环境。Token 和证书必须对应上才能推送。
1. Token 是正式还是测试取决于客户端打包方式,先确认环境是否正常:
开发环境(Xcode 直接运行):由 Debug 设置配置 上传的证书 ID。
生产环境(打包 ipa):release 设置配置上传的证书 ID(大部分客户常把生产的证书上传到开发环境)。
2. p12 证书可以选择开发/生产一体的证书,或者使用 p8 证书。上传到 IM 控制台选择想要的环境就行。

报错 dyld: Library not loaded: @rpath/ImSDK_Plus.framework/ImSDK_Plus,Referenced from: /private/var/containers/Bundle/Application/52F5B9F2-435F-4BBF-BF7D,3EC3B381CE80/Demo.app/Frameworks/TIMPush.framework/TIMPush,Reason: image not found?

因缺少 IM SDK 引起,需先执行 pod 'TXIMSDK_Plus_iOS’ 或 pod 'TXIMSDK_Plus_iOS_XCFramework',加上后再执行 pod install

推送统计数据问题

iOS 没有收到触达回执?

上报推送触达数据,需要开启控制台开关来支持 iOS 10 的 Extension 功能,详情请参见 统计消息触达率
为保证上报数据在一些异常情况下不丢失,iOS 推送数据的上报会在下次登录时上报,可能会有滞后,请尝试重新登录。

iOS 统计上报功能

上报推送触达数据,需要开启此开关来支持 iOS 10 的 Extension 功能,详情请参见 统计消息触达率

触达统计是否有延迟?

Android 的触达为厂商返回,iOS 的触达为客户端上报,因此 Android 的触达时间取决于厂商,不受 IM 控制;iOS 的触达上报有延迟,下次客户端登录时才会上报。