对应后端
push配置中的 APNs、华为、小米、vivo、OPPO、Firebase 推送。面向中国大陆 App 开发和上架场景。各厂商后台、审核条件和限额可能调整,最终以控制台和官方协议为准。
| 推送通道 | 主要设备 | 是否单独收费 | 主要前置条件 |
|---|---|---|---|
| APNs | iPhone、iPad、macOS 等 Apple 设备 | 不单独收推送费 | 需要有效的 Apple Developer Program 账号 |
| 华为 Push Kit | 华为、荣耀旧 HMS 机型、HarmonyOS/HMS 生态 | 通常不单独收推送费 | 华为开发者账号、应用、Push Kit 开通 |
| 小米推送 | 小米、Redmi、部分 HyperOS/MIUI 设备 | 基础服务目前免费 | 小米开发者账号、应用、推送服务启用 |
| vivo 推送 | vivo、iQOO 设备 | 通常不单独收推送费 | vivo 开发者账号、应用、推送服务申请通过 |
| OPPO PUSH | OPPO、一加、realme 部分机型 | 通常不单独收推送费 | OPPO 企业开发者账号、应用、PUSH 权限开通 |
| Firebase FCM | 海外 Android、Google Play 设备、Web、部分 iOS 场景 | FCM 本身免费 | Firebase 项目、Android 应用、服务账号 JSON |
实际开发里,推送本身多数不收费;真正可能产生费用的是 Apple 开发者账号、各平台企业认证/上架材料、云服务器、第三方聚合推送服务、短信兜底、运营推广和合规整改。
需要区分两个阶段:
| 通道 | 是否需要企业资料 | 说明 |
|---|---|---|
| APNs | 公司账号需要;个人账号不需要企业资料 | Apple 个人账号只做个人身份验证;组织账号需要 D-U-N-S、公司网站、公司域名邮箱和法律授权 |
| 华为 Push Kit | 公司 App 建议企业认证 | 需要华为开发者实名认证;创建应用、上架和开通 Push Kit 时会基于账号主体和应用信息审核 |
| 小米推送 | 通常需要企业实名认证 | 小米推送官方接入流程包含“通过企业实名认证成为小米开发者” |
| vivo 推送 | 公司 App 建议企业认证 | vivo 开放平台需要开发者认证,推送服务可能结合应用状态、包名和合规资料审核 |
| OPPO PUSH | 通常需要企业开发者账号 | OPPO PUSH 权限申请一般基于已认证开发者和已创建应用,企业资料不完整会影响开通 |
| Firebase FCM | 不强制中国企业资料 | 需要 Google/Firebase 项目和服务账号;若上架 Google Play,则另有 Google Play 开发者身份验证要求 |
国内商业 App 如果要覆盖主流安卓厂商,建议提前准备企业主体资料,而不是只准备技术参数。
常见资料:
push:
contentDetailOn: true
pushPoolSize: 100
apns:
dev: false
topic: ""
password: ""
cert: ""
hms:
packageName: ""
appID: ""
appSecret: ""
mi:
packageName: ""
appID: ""
appSecret: ""
channelID: ""
vivo:
packageName: ""
appID: ""
appKey: ""
appSecret: ""
oppo:
packageName: ""
appID: ""
appKey: ""
appSecret: ""
masterSecret: ""
firebase:
jsonPath: ""
projectId: ""
packageName: ""
| 字段 | 从哪里获取 | 说明 |
|---|---|---|
contentDetailOn | 自己配置 | 是否在通知栏展示消息详情;涉及隐私内容时建议谨慎开启 |
pushPoolSize | 自己配置 | 后端推送并发池大小,不是厂商平台参数;过大可能触发限流 |
packageName | Android 项目/各厂商应用后台 | 必须与 APK/AAB 包名一致,例如 com.company.app |
apns.topic | Apple Developer / Xcode | 通常是 iOS Bundle ID,例如 com.company.app |
apns.cert | Apple Developer 证书后台 | APNs .p12 证书路径,也可改造为 APNs Auth Key 方式 |
apns.password | 导出 .p12 时设置 | 服务器读取证书时使用 |
hms.appID / hms.appSecret | AppGallery Connect | 华为应用的 App ID 和 Client Secret/App Secret |
mi.appID / mi.appSecret | 小米推送运营平台 | 小米应用启用推送后查看 |
mi.channelID | 小米推送运营平台 | 通知渠道 ID,和客户端通知渠道保持一致 |
vivo.appID / vivo.appKey / vivo.appSecret | vivo 开放平台推送服务 | 应用推送服务申请通过后查看 |
oppo.appID / oppo.appKey / oppo.appSecret / oppo.masterSecret | OPPO PUSH 运营平台 | PUSH 权限通过后在应用配置中查看 |
firebase.jsonPath | Firebase / Google Cloud | 服务账号 JSON 文件路径,注意不要提交到 Git |
firebase.projectId | Firebase 项目设置 | Firebase Project ID |
.cer 后导出 .p12。.p12,先按证书方式配置。topic:Bundle ID。cert:.p12 文件路径。password:导出 .p12 时设置的密码。dev:测试环境为 true,生产环境为 false。dev 配错会导致推送失败。.p12 文件属于敏感凭据,不要放进公开仓库。packageNameappIDappSecret 或 Client SecretpackageNameappIDappKeyappSecretchannelIDchannelID 要与客户端 Android 通知渠道匹配,否则可能影响通知展示样式或分类。packageNameappIDappKeyappSecretpackageNameappIDappKeyappSecretmasterSecretMasterSecret 参与服务端签名,泄露后风险很高。google-services.json 给 Android 客户端使用。jsonPath:服务账号 JSON 路径。projectId:Firebase Project ID。packageName:Android 包名。国内 Android 没有统一可用的系统推送通道,通常需要多厂商推送组合:
| 设备 | 推荐通道 |
|---|---|
| 华为/HarmonyOS/HMS | 华为 Push Kit |
| 小米/Redmi | 小米推送 |
| vivo/iQOO | vivo 推送 |
| OPPO/一加/realme | OPPO PUSH |
| 海外 Android/Google Play 设备 | Firebase FCM |
| 其它设备 | 第三方聚合推送或应用保活兜底,但要注意合规 |
如果不想自己维护多厂商 SDK 和服务端签名,可以选择极光、个推、友盟、腾讯云移动推送、阿里云移动推送等聚合服务。聚合推送通常会有免费版、MAU 阶梯、厂商通道增强、数据统计和 SLA 套餐,费用按服务商报价。
appSecret、masterSecret、APNs .p12、Firebase JSON 都只能放在服务端,不能写进 App 客户端。| 场景 | 推送直接费用 | 可能的间接费用 |
|---|---|---|
| 只做 iOS 推送 | APNs 不单独收费 | Apple Developer Program 年费 |
| 国内 Android 多厂商直连 | 厂商推送通常不单独收费 | 各厂商账号认证、上架材料、软著、开发和维护成本 |
| 海外 Android FCM | FCM 本身免费 | Firebase 其它服务、Google Play 账号、服务器 |
| 使用聚合推送服务 | 取决于服务商套餐 | MAU、消息量、厂商通道增强、数据统计、SLA |