与开发证书连接到prod APN

use*_*850 6 ruby ssl apple-push-notifications ios

我正在使用这个Ruby代码在不成功的推送时从APN接收错误:

if IO.select([ssl], nil, nil, 5)
    read_buffer = ssl.read(6)
    process_error_response(read_buffer)
end
Run Code Online (Sandbox Code Playgroud)

我注意到一个奇怪的情况,其中IO.select是非nil但read_buffer返回一个空字符串.经过一些调试后,我意识到如果您使用开发APNs证书连接到gateway.push.apple.com会发生这种情况,如果您使用生产证书连接到gateway.sandbox.push.apple.com,则会发生同样的事情.

有没有办法以编程方式检测到这种情况,例如,如果您获得了用户的推送证书并告诉它的生产/开发,但实际上无法在Apple开发人员网站上验证这一事实?我本以为连接会被拒绝,但它似乎是在创建但处于部分破坏的状态.

Ang*_*qui 0

嗯,这不是一种检查证书是否有效的方法,但如果您想检测它是开发证书还是生产证书,您可以检查它。开发中将包含“Developer”字符串,而生产中将包含“Production”字符串。