用AdHoc来测试iOS线上推送

级别: ★☆☆☆☆
标签:「iOS」「AdHoc」「推送」
作者: 大成小栈
审校: QiShare团队


1. 关于iOS 推送证书

iOS推送分为开发环境和生产环境,在推送证书的type上分别对应 APNs Development iOS 和 Apple Push Service。在开发者账号中创建AppId之后“Edit your App ID Configuration”的时候,如果勾选了Push Notifications,那么就可以在这个选项下直接配置测试、生产推送证书。

用AdHoc来测试iOS线上推送_第1张图片
勾选AppId的推送权限
用AdHoc来测试iOS线上推送_第2张图片
进入创建证书界面
用AdHoc来测试iOS线上推送_第3张图片
选择钥匙串中生成的certSigningRequest文件
用AdHoc来测试iOS线上推送_第4张图片
生成证书并下载

推送证书是给App服务端使用的,业务服务端拿着这个推送证书和推送消息与苹果的APNs交互,完成业务上消息的推送。从上面的过程可以看出,创建推送证书主要需要AppId + CSR文件。

2. 关于iOS APP打包证书

用AdHoc来测试iOS线上推送_第5张图片
创建“Software”类证书
用AdHoc来测试iOS线上推送_第6张图片
创建“Service”类证书

从创建证书界面可见,创建的证书包括两类:为APP开发时,编译打包使用的证书,也分开发、生产证书;为APP提供服务的一类证书,比如推送证书,即推送证书也可以在这创建。

注:其中有一个选项是 iOS Distribution (App Store and Ad Hoc),注意理解。

创建一个开发证书:


用AdHoc来测试iOS线上推送_第7张图片
选择iOS APP Development创建证书
用AdHoc来测试iOS线上推送_第8张图片
选择CSR文件
用AdHoc来测试iOS线上推送_第9张图片
生成证书并下载

从上面的过程可以看出,创建一个用于编译打包的证书,只需要上传一个CSR文件,无需指定其他信息。

3. 关于Profiles

在APP开发过程中,开发和发布都需要创建对应的Provisioning Profile,这个描述文件也有不同的类型:

用AdHoc来测试iOS线上推送_第10张图片
选择创建Profiles的类型
用AdHoc来测试iOS线上推送_第11张图片
选择即将创建的这个Provisioning Profile对应的AppId
用AdHoc来测试iOS线上推送_第12张图片
选择即将创建的这个Provisioning Profile对应的APP打包
用AdHoc来测试iOS线上推送_第13张图片
选择可以安装这个APP的设备
用AdHoc来测试iOS线上推送_第14张图片
给这个描述文件起名字
用AdHoc来测试iOS线上推送_第15张图片
生成并下载

从上面的步骤中可以看出,创建一个AdHoc 的 Provisioning Profile 需要的信息有:AppId、相应的打包证书(Distribution型)、选择可安装该APP的设备。所以,是描述文件将AppID、证书、APP、设备联系到了一起,而推送证书和打包证书没什么直接关系。具体的描述文件、证书、App的安装过程请参考文章:iOS 签名机制

4. 编译打包时的证书的选择

如果想在发布APP前,再做最后线上环境推送流程测试,用正式发布是的生产证书和描述文件打包时,是不能直接装到iOS设备上的。想测试线上环境推送只能选用AdHoc的方式,如果直接用Xcode运行装载到设备上,那就在工程配置中选择AdHoc的描述文件,真机编译运行(不会顺利运行至应用界面,等到应用自然崩溃),装载完成即可进行推送测试。

如果选择代理网站分发,需要打出ipa包,则在Xcode中打包时选择Product -> Archive -> distribute,会有以下界面:


用AdHoc来测试iOS线上推送_第16张图片
用AdHoc来测试iOS线上推送_第17张图片
用AdHoc来测试iOS线上推送_第18张图片

将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的启动流程

你可能感兴趣的:(用AdHoc来测试iOS线上推送)