我知道在这种情况下有很多问题,但我已经尝试了所有解决方案,但我仍然陷入困境。我正在使用杂货商gem来向APN服务发送推送通知。我被困在证书问题上。
这是代码
pusher = Grocer.pusher(
certificate: "#{Rails.root}/public/certificate1.pem", # required
passphrase: "", # optional
gateway: "gateway.push.apple.com", # optional; See note below.
port: 2195, # optional
retries: 3 # optional
)
notification = Grocer::Notification.new(
device_token: token,
alert: "#{uname} liked your post",
sound: 'default',
badge: 0
)
pusher.push(notification)
我在生产环境中,我在Heroku上托管应用程序。 Heroku日志告诉我这个
OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error):
app/controllers/api/v1/feeds_controller.rb:49:in `likeit'
第49行是推送通知的行。
我确定我使用的证书是正确的,因为我已经使用它测试了推送通知。此外,在生成pem文件时,我已导出证书以及私钥。
参考:grocer gem
欢迎任何建议!
答案 0 :(得分:1)
我不得不改变这两件事:
1)在apple developer accounts上的推送通知选项卡下获取生产SSL证书
2)当我还处于开发模式时,将gateway.push.apple.com更改为gateway.sandbox.push.apple.com。