0

こんにちは私はgemhttps://github.com/PRX/apn_on_rails.gitを使用しており、iOSアプリのプッシュ通知を送信するための指示に従いました。次のような通知を作成しました。

device = APN::Device.create(:token => "XXXX XXXX XXXXX XXXX XXXX .... XXXX")   
notification = APN::Notification.new   
notification.device = device   
notification.badge = 5   
notification.sound = true   
notification.alert = "My first push"   
notification.save 

そして、私のローカルサーバーでrakeコマンドを実行します。

rake apn:notifications:deliver 

通知を送信します。すべてがうまくいきましたが、私の携帯電話はまだ何も受け取りませんでした。apn_notificationsテーブルを確認したところ、rakeコマンドを実行した後もsent_atがnilのままであることがわかりました。データベースにいくつかの通知を保存しましたが、いずれも配信されませんでした(sent_atはすべてnilのままでした)。

$ rake apn:notifications:deliver --trace
** Invoke apn:notifications:deliver (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute apn:notifications:deliver

私が含めた

begin
 require 'apn_on_rails_tasks'
rescue MissingSourceFile => e
 puts e.message
end

Rakefileにあります。通知を配信できないようにするために見逃したものはありますか?

4

1 に答える 1

0

私も同じように振る舞いましたが、私にとっては、間違ったPEM証明書を使用したことがわかりました。そして、証明書を.P12から.PEMに適切に変換し、それを/ configフォルダーに配置すると、機能しました。

それをデバッグする1つの方法は、RAKEを使用してAppleサーバーに配信をプッシュするのを待つ代わりに
、ruby/railsコントローラー内のnotification.saveの直後にAPN::App.send_notificationsを呼び出すことを試みることができるということです。実行時のログから、Appleが接続を拒否していることがわかりました。そのため、証明書が正しくないことがわかりました。

于 2012-09-05T17:13:33.443 に答える