1. 关于iOS 推送证书
iOS推送分为开发环境和生产环境,在推送证书的type上分别对应 APNs Development iOS 和 Apple Push Service。在开发者账号中创建AppId之后“Edit your App ID Configuration”的时候,如果勾选了Push Notifications,那么就可以在这个选项下直接配置测试、生产推送证书。
![](https://img.haomeiwen.com/i13180946/1ff47d4624763b05.png)
![](https://img.haomeiwen.com/i13180946/45abb2e77242a398.png)
![](https://img.haomeiwen.com/i13180946/b5232fd803f9f60c.png)
![](https://img.haomeiwen.com/i13180946/51dfde244593f1fd.png)
推送证书是给App服务端使用的,业务服务端拿着这个推送证书和推送消息与苹果的APNs交互,完成业务上消息的推送。从上面的过程可以看出,创建推送证书主要需要AppId + CSR文件。
2. 关于iOS APP打包证书
![](https://img.haomeiwen.com/i13180946/804c16a026123a35.png)
![](https://img.haomeiwen.com/i13180946/2e97afb41c92c4a6.png)
从创建证书界面可见,创建的证书包括两类:为APP开发时,编译打包使用的证书,也分开发、生产证书;为APP提供服务的一类证书,比如推送证书,即推送证书也可以在这创建。
注:其中有一个选项是 iOS Distribution (App Store and Ad Hoc),注意理解。
创建一个开发证书:
![](https://img.haomeiwen.com/i13180946/7c5db5667cc93fd5.png)
![](https://img.haomeiwen.com/i13180946/3579a2ecb9071896.png)
![](https://img.haomeiwen.com/i13180946/8092116e05bbf851.png)
从上面的过程可以看出,创建一个用于编译打包的证书,只需要上传一个CSR文件,无需指定其他信息。
3. 关于Profiles
在APP开发过程中,开发和发布都需要创建对应的Provisioning Profile,这个描述文件也有不同的类型:
![](https://img.haomeiwen.com/i13180946/b33d53b62b15df56.png)
![](https://img.haomeiwen.com/i13180946/6ee50cd097d06f55.png)
![](https://img.haomeiwen.com/i13180946/1e5bb32209e0349f.png)
![](https://img.haomeiwen.com/i13180946/f107131dccd29968.png)
![](https://img.haomeiwen.com/i13180946/bdd13990fa48a867.png)
![](https://img.haomeiwen.com/i13180946/aec499ae6ceb164d.png)
从上面的步骤中可以看出,创建一个AdHoc 的 Provisioning Profile 需要的信息有:AppId、相应的打包证书(Distribution型)、选择可安装该APP的设备。所以,是描述文件将AppID、证书、APP、设备联系到了一起,而推送证书和打包证书没什么直接关系。具体的描述文件、证书、App的安装过程请参考文章:iOS 签名机制
4. 编译打包时的证书的选择
如果想在发布APP前,再做最后线上环境推送流程测试,用正式发布是的生产证书和描述文件打包时,是不能直接装到iOS设备上的。想测试线上环境推送只能选用AdHoc的方式,如果直接用Xcode运行装载到设备上,那就在工程配置中选择AdHoc的描述文件,真机编译运行(不会顺利运行至应用界面,等到应用自然崩溃),装载完成即可进行推送测试。
如果选择代理网站分发,需要打出ipa包,则在Xcode中打包时选择Product -> Archive -> distribute,会有以下界面:
![](https://img.haomeiwen.com/i13180946/d6505d0180791065.png)
![](https://img.haomeiwen.com/i13180946/800f2c575e58b358.png)
![](https://img.haomeiwen.com/i13180946/0764dc5ba0346fed.png)
将ipa包装至真机,即可进行测试。
推荐文章:
Swift 5.1 (9) - 结构体和类
Swift 实现一个兼容iOS、tvOS、OSX的抽象层
iOS Password AutoFill
iOS 给UILabel添加点击事件
用SwiftUI给视图添加动画
用SwiftUI写一个简单页面
Swift 5.1 (7) - 闭包
iOS App启动优化(三)—— 自己做一个工具监控App的启动耗时
iOS App启动优化(二)—— 使用“Time Profiler”工具监控App的启动耗时
iOS App启动优化(一)—— 了解App的启动流程
网友评论