pem文件是服务器向苹果服务器做推送时候需要的文件,主要是做服务器的小伙伴们要用,下面介绍一下pem文件的生成。
打开Keychain Access,在Certificates里面找到上篇文章中介绍的包含推送的证书。分别将certificate和private key导出得到.p12文件。例如:Apple Development Push Services > Export “Apple Development Push Services ID123”,保存为 apns-dev-cert.p12。对“Private Key”做同样操作,保存为 apns-dev-key.p12 文件。
需要通过终端命令将这些文件转换为PEM格式:
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
此处要求输入一个密码,输入123456.移除密码(上面的123456)
openssl rsa -in apns-dev-key.pem -out apns-dev-key.pem最后,你需要将键和许可文件合成为apns-dev.pem文件,此文件在连接到APNS时需要使用:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
openssl pkcs12 -nocerts -out apns-dis-key.pem -in apns-dis-key.p12
cat apns-dis-cert.pem apns-dis-key.pem > apns-dis.pem
Python实现:
#encode:utf-8
import APNSWrapper
import binascii
deviceToken = binascii.unhexlify('2cd40912550d672f9489056c200a23e4bd298ef665807760c51d66bfce9f2d7d')
# create wrapper
#True Sandbox, False Distribution
wrapper = APNSWrapper.APNSNotificationWrapper('ck.pem', True)
# create message
message = APNSWrapper.APNSNotification()
message.token(deviceToken)
message.badge(5)
message.alert("hellowrold 234234")
# add message to tuple and send it to APNS server
wrapper.append(message)
wrapper.notify()