如果想测试应用的消息推送的逻辑,在此之前我们只有一个选择,就是使用真实设备以及苹果推送服务进行测试。在真正的测试发送通知之前,我们需要将设备id添加到开发者后台,需要更新授权文件,需要配置推送证书,重新编译App安装到设备上以及获取设备的推送令牌。
这是让人难受的过程,尤其是对于一些共享开发帐号的情况——100个开发设备的名额很快就受限了。如果你是个新手,对推送不太了解,可能开发证书跟推送证书还不太明了,或者如果后端也是懵逼的,那难度系数还要+1。没有真机调试,相信这会是你难忘的调试经历。这不是我的经历,但现实确实是很多人会有困扰。
我通常使用Knuff
或者一些Python库来测试推送,我现在也还会用,但现在我们有更好的选择了。
从Xcode 11.4开始,可以直接在模拟器中模拟远程推送通知。免去了繁杂的配置过程,也无需漫长的等待。
最好的方法是使用simctl命令行工具,该工具提供了以编程方式使用模拟器的界面。
推送的Payload
数据是这样的:(官方文档)1
2
3
4
5
6
7
8
9{
"aps" : {
"alert" : {
"title": "My title",
"body" : "This is a test",
}
},
"Simulator Target Bundle": "com.company.abc"
}
对于App的指定,可以在Payload
中指定为APP_PRODUCT_BUNDLE_IDENTIFIER
,或者在命令行中指定也是可以的。
推送的命令:1
xcrun simctl push <device> [<bundle identifier>] (<payload json file> | -)
示例:1
2xcrun simctl push booted com.company.abc payload.json
xcrun simctl push booted payload.json // 如果在Payload中指定了target
也可以使用下面的命令,获取到已启动的1
xcrun simctl list | egrep 'Booted'
Comments