您好,使用 Token Auth 后虽然没有了证书但还是会区分推送消息环境,是正式环境还是测试环境,所以 _profile 这个参数依然有用。

不指定 profile 参数时默认发消息到正式环境,如果希望发消息到测试环境就必须带着 _profile 参数的。

可是发送推送时,不选择证书,为啥两个环境都可以发送

您可以在控制台 -> 消息 -> 推送记录下看,您发出来的消息 prod 都是 dev。要么您发推送时候请求中就带了 prod,要么请求是从测试环境的云引擎发出来的。可以查看一下。

的确是我弄错了,是你说的那样,需要指定 _profile 参数,推送的时候,我将 prod 参数设为了 dev,所以客户端才收的到

那还有一个问题不清楚

  1. 设置 Token Authentication 后,发送到测试环境时, _profile 随便选一个,还是必须设为 dev, 假如我没上传 dev 证书的话

使用 Token Auth 之后,无论是否上传证书,都不会在使用证书发消息。如果消息要发到测试环境,_profile 只能是 dev,填 prod 会发到正式环境,那安装测试环境的 App 就无法收到消息了。也就是说发消息环境必须和目标 App 环境相匹配。