###开发者账号
在开发过程中,我用到了2种类型的开发者账号
- in-house账号
- company账号
其中in-house
账号是用于企业级的发布操作,不用上传appstore就可以让任何一台机器运行打出来的包
而company
账号则用于打包上传appstore
###证书(Certificates),appid,设备(Device),配置文件(Provisioning Profiles)之间的关系
无论是in-house账号还是company账号,都会有对应的证书,设备,appid,和配置文件
证书分类(Certificates):生产环境证书
(Production)
,开发者环境证书(Development)
,还有appid下的推送证书appid:一般与工程的bundleId对应,有2种:通配id
(Wildcard)
,如com.domainname.*,在对应到工程的bundleId时星号可以是随意。明确的id(Explicit)
,如com.domainname.name,在工程中,bundleId对应只能填入com.domainname.name。推送证书:包括开发环境推送证书,生产环境推送证书。推送证书会对应appid,不同的appid会有不同的推送证书
设备(Device): 已经注册到in-house或者company账号下的设备,如iphone,touch,watch等等
配置文件(Provisioning Profiles) : 利用配置文件,将证书,项目工程将要用到的设备,和项目bundleId对应的appid绑定在一起。
这么多东西,都是为了生成配置文件,然后用作项目打包或者真机调试用。
1.打生产环境包:用
生产环境证书 + appid(包含了推送证书设置) + 设备(可选) = 配置文件
来打包
2.真机调试:用
开发环境证书 + appid(包含了推送证书设置) + 设备 = 配置文件
来真机调试
###证书,appid,配置文件的生成
知道证书,appid,配置文件的关系之后,就可以生成了
百度知道上面有比较全面生成教学
注意这些生成的.csr,.cer,.p12文件要好好保存不要随意丢弃。.cer文件不见了可以在member center中下载
###APNs推送
1.几个概念
自己服务器向设备推送的过程。
- deviceToken:每个设备(如你的iphone)唯一的token,从APNs服务器取得
- provider:我们自己的服务器
- 保证自己的服务器被APNs信任(需要appid对应推送证书与p12生成的pem文件)
- 保证自己的设备被APNs信任(appid设置了对应推送证书)
官方文档这里描述得非常详细
2.服务器需要的pem文件生成命令,以生产环境的推送证书为例。
先cd到存放.cer和.p12文件夹下。
例如我有生产环境推送的.cer与.p12长这样:
cert_production.cer
key_production.p12
- 生成.cer文件对应的pem文件
1 | openssl x509 -in cert_production.cer -inform DER -out cert_production.pem -outform PEM |
- 生成.p12文件对应的pem文件
1 | openssl pkcs12 -nocerts -out key_production.pem -in key_production.p12 |
- 下面2个命令是测试生成的2个pem文件是否有效
1 | telnet gateway.push.apple.com 2195 |
- 如果是开发环境的的推送证书,用这个测试
1 | telnet gateway.sandbox.push.apple.com 2195 |