2017年1月15日
效果图:
需要制作两个一个开发测试环境用(测试push证书),一个用于线上上传环境用(发布push证书)
1.第一步登录苹果后台网站,创建app id(注意push功能要用全称,不要用通配符),开启push功能《如果想用jenkins打出的包,一台手机装两个应用,必须创建2个app id》
本例中创建测试app Id com.317hu.development
点击下一步,在点击注册
创建好后,点击修改
发布环境即生产环境,有以下3种。
1.1.299美金的公司账号 in-house选项
1.2.99美金的个人或公司账号 ad-hoc选项 (有个局限性,最多100台设备)
1.3.99美金的 上线appStore选项
2.接下来我们选择创建开发环境的push证书 按钮 create certificate,一直下一步出现选择CSR文件选择
先暂停一会,先创建CSR文件
创建好后继续上一步
3.创建好证书 开始制作上传的pem文件
3.1先导出成p12文件
下载双击安装到本地,用钥匙串打开
右键后选择导出,默认选择p12,密码设置下 制作pem要用,这里设置123456
3.2用p12文件制作pem文件(用于上传到第三方库,如百度云push或极光推送push)
进入终端,输入如命令 (我都保存在桌面)
cd /Users/yanchengyi/Desktop
openssl pkcs12 -in 317huDevelopmentP12.p12 -out 317huDevelopmentPem.pem -nodes
在输入密码123456 pem文件就创建好了
4.证书和上次文件pem创建好后,我们还不能联调,还要制作pp文件 com317huDevelopmentpp
4.1登录官网进行创建
选择对应的app ID
下载到本地 双击安装,就可以进行调试了。
二.接下来用同样的步骤创建appstore类型给的上传证书 即发布类型push证书
1.修改app id
创建CSR,我们这里不创建了,选择开发环境创建的CSR文件既可
下载安装在钥匙串中打开
导出成p12文件 317huDevelopmentProP12.p12 密码设成123456
终端命令
cd /Users/yanchengyi/Desktop
openssl pkcs12 -in 317huDevelopmentProP12.p12 -out 317huDevelopmentProPem.pem -nodes
接下来我们在创建对应pp文件(distirbution发布类型)com317huDevelopmentPropp
至此 用于上传的开发 和发布 push证书都创建好了。
二.测试(本例子用百度云测试)
1.登录后台创建应用
代码里面设置成对应的即可。
接下里就是app id了,我这里把uat设置成刚刚创建的app id, 不会的参照http://www.jianshu.com/p/62d40827321d(还没试成功)
为了测试,push证书,我们先简单点,先全部选成新建的文件或id
接下来真机调试:
代码运行获取channelId进行调试
测试成功
ps:首次运行报了10002错误
解决:是自己本地把该应用允许网络状态给关了导致,打开允许网络访问就可以了(官方解释1开头的都是本地错误)
2017年1月16日
三. 如何测试生产环境的push证书(发布证书)
场景:uat环境改用生产状态推送
第一步.创建一个Ad Hoc类型的 pp (普通公司账号一般是绑定设备《100台》,才可以联调)
创建好后orgQqhlNursingAdHoc.mobileprovision 双击安装, 注意选择这个pp 打出来的ipa包是无法调试的。会报如下错误,但是debug模式下是可以安装(刚刚试了release模式也是可以安装的)
第二步,要单独打包成基于该pp文件的ipa (以下两个都可以,其实我用的是debug_uat)
第三步,用点方法获取 BPush getChannelId<不卸载程序一般id不变,有时候,卸载了马上运行安装也是不变的>
第四步,百度后台推送(或者appServer后台推送)
效果:都是正常的
由于发布证书无发调试,加上该功能不是经常修改,暂时可以像上面这样,直接电脑运行下安装测试。
后续,我们集成到到Jenkins上来处理(还在改写shell脚本代码)。
如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。