==================================== About ==================================== Push Notification Library with support for the extended format. This Library is designed to send thousands of APNs at once without dropping a lot of messages on errors. Since version 0.4 it supports the use of multiple App IDs with one process. ==================================== Getting Started ==================================== For Rails start the generator: kw_apn This will copy the configuration example into your project. If you not working with Rails you need to specify either Rails.root and Rails.env or RACK_ROOT and RACK_ENV for the gem to work. Manual: create the File <project_root>/config/kw_apn.yml structure of the config file should look like this: environment: cert_file: path to ssl certificate file push_host: 'gateway.sandbox.push.apple.com' or 'gateway.push.apple.com' for live push_port: 2195 feedback_host: 'feedback.sandbox.push.apple.com' or 'feedback.push.apple.com' for live feedback_port: 2196 ==================================== Creating cert file ==================================== Export the key and the certificate as P12 files and run: openssl pkcs12 -in apn-cert.p12 -out apn-cert.pem -nodes -clcerts openssl pkcs12 -in apn-key.p12 -out apn-key.pem -nodes -clcerts ==================================== Example ==================================== users = MyAPNUsers.all n = [] payload = {:aps => {:alert => "Something very important for everyone to read", :sound => 'annoying_beep'}} users.each do |u| n << KwAPN::Notification.create(u.token, payload, 0) end status, ret = KwAPN::Sender.push(n, 'TestSession') if status == :ok ret.each do |token| MyAPNUsers.delete_all('token'=>token) end end ==================================== Multiple App IDs ==================================== Since version 0.4 it is possible to use kw_apn with multiple App IDs. Configuration Example: production: 'com.mycompany.app1': cert_file: config/apn_certs/app1.pem cert_key: config/apn_certs/app1.pem 'com.mycompany.app2': cert_file: config/apn_certs/app2.pem cert_key: config/apn_certs/app2.pem Usage Example ... same as above... status, ret = KwAPN::Sender.push(n, 'TestSession', 'com.mycompany.app1') ==================================== Copyright ==================================== Distributed under the MIT License. Based in part on Apns4r by Leonid Ponomarev (http://rdoc.info/projects/thegeekbird/Apns4r)