今天做了一个集成百度云推送功能的demo,习惯性的上了苹果开发者中心配置了一系列的证书。
之后来到百度云推送的开发者中心,创建了应用,需要上传推送开发和生产证书。百度云上并没有写明该上传什么格式的证书,于是上传了我自己配的两个p12文件,不对?那就是把p12再转成pem再上传咯?于是照常使用openssl pkcs12 -in BDYDev.p12 -out BDYDev.pem -nodes 操作转换出了开发的和生产的两个pem文件。继续上传,咦还是不对。。
于是打开百度云的SDK中看他的说明,百度云SDK中“iOS证书指导.pdf”中跟我的做法没有出入啊。看样子还得上百度找答案。
终于在网上找到了答案,根据网上的说法,百度云平台生成pem文件的openssl版本不得高于0.9.8 在终端输入命令 openssl --version,打印出了2.2.7
具体解决做法:
1、至 openssl 官网 https://www.openssl.org/source/old/0.9.x/ 找到0.9.8zh版本点击下载
2、解压openssl-0.9.8zh文件
3、终端cd到解压出来的openssl-0.9.8zh文件夹
4、终端输入命令“./config”
5、右键“Finder”前往文件夹“/usr/local/”,如果该目录下没有openssl目录,则自己创建一个
6、终端输入命令“./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl --shared”
7、终端输入命令“make && make install”,此时 openssl (Unix可执行文件) 会出现在 /usr/local/openssl/bin/openssl 目录下,可以自己右键“Finder”去到该目录会发现已经有内容了
8、终端输入命令“/usr/local/openssl/bin/openssl version”如果打印出0.9.8说明,版本成功了
9、终端cd到自己的推送开发和生产p12文件的目录
10、终端输入命令“/usr/local/openssl/bin/openssl pkcs12 -in BDYDev.p12 -out BDYDev.pem -nodes ”和“/usr/local/openssl/bin/openssl pkcs12 -in BDYDis.p12 -out BDYDis.pem -nodes ”
至此,生成的BDYDev.pem和BDYDis.pem可以上传到百度云平台了。
最后,百度云推送看来看来应该是比较少人用了,不然这些这么坑的地方都没什么人提出来,官方估计也懒得更新这些了。