美文网首页
iOS模拟器推送测试及踩坑

iOS模拟器推送测试及踩坑

作者: Lazyloading | 来源:发表于2021-10-18 17:40 被阅读0次

前言:现在的App几乎都有推送功能,开发推送功能的时候我们肯定要进行测试,但是之前推送功能只有在真机上才能测试,在Xcode11.4之后,模拟器也支持推送测试,具体操作如下:

1.创建推送文件

内容类似如下格式

{
    "aps":{
        "alert":{
            "title":"标题",
            "body":"内容辱与共产主义不容辞"
        },
        "content-available" : 1,
        "mutable-content" : 1
    }
}

具体格式根据你们的产品要求,接入极光或者个推的可以在控制台发一条推送打印出具体格式内容查看,将文件保存后缀为apns,待会要用到

2.执行如下命令进行测试

  1. 查看已启动模拟器
xcrun simctl list devices | grep Booted

会看到类似下面信息,如果没有请先启动模拟器

iPhone 12 Pro (1BEE4182-C934-431E-BCBF-F7676C4C2BFC) (Booted)
  1. 运行项目在模拟器上后执行相应命令simctl push <device> [<bundle identifier>] (<json file> | -)

示例如下

xcrun simctl push Booted com.app.test /Users/lazyloading/Desktop/payload.apns

3.另外还有一种方式是直接使用推送文件

将第一步创建的json文件内容稍加修改,具体就是添加了"Simulator Target Bundle": "com.app.test"你项目的包名

{
    "Simulator Target Bundle": "com.app.test",
    "aps":{
        "alert":{
            "title":"标题",
            "body":"内容辱与共产主义不容辞"
        },
        "content-available" : 1,
        "mutable-content" : 1
    }
}

然后直接拖动文件到模拟器上,出现绿色➕后松手,这样也可以进行推送测试

踩坑

到这里按照网上你查看的其他教程应该已经收到测试的推送了,但是我没有>_<!

原因很简单,没有注册,我的项目中集成的是极光推送,已经存在注册步骤,但是这里依然要我注册,如果你遇到类似的问题,添加如下代码

[UNUserNotificationCenter.currentNotificationCenter requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionSound  completionHandler:^(BOOL granted, NSError * _Nullable error) {
        NSLog(@"%d",granted);
}];

这是应该就可以正常收到推送了,但是依然存在几个问题,推送相关的代理方法没有执行,iOS15真机可以,模拟器不行,例如

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

另外就是前台没法收到推送,退到后台才可以,至少我这里遇到的情况是这样,虽然模拟器支持推送测试,但是依然无法和真机进行比较,最好还是以真机测试为准

相关文章

  • iOS模拟器推送测试及踩坑

    前言:现在的App几乎都有推送功能,开发推送功能的时候我们肯定要进行测试,但是之前推送功能只有在真机上才能测试,在...

  • iOS推送踩坑

    需求 app收到推送,点击推送消息进入指定页面,常用做法是在didReceiveRemoteNotificatio...

  • iOS 模拟器推送通知(xcode 11.4)

    转:iOS开发之模拟器测试远程推送 参数解释 device :只需将其设置为booted即可使用已经启动的模拟器。...

  • 五、<iOS 远程推送> iOS 10 UNNoti

    研究完苹果 iOS 10 推送后,到9月份,等苹果 iOS 11 正式上线,再研究其推送,不愿意踩坑,敬请期待。 ...

  • Unity iOS本地推送踩坑实录

    昨天实现了一下Unity里iOS推送。踩坑两个。 1. 要先注册推送才可以 接收推送前必须调用Notificati...

  • 2020阿里云推送iOS SDK配置

    阿里云推送总的来说官方文档已经写得很清楚了,我这里做一点补充,避免以后踩没必要的坑。1:iOS应用推送需配置开发环...

  • iOS集成OpenCV

    iOS项目集成OpenCV及踩过的坑 一、直接下载Framework集成 1.1、下载OpenCV的Framewo...

  • APP消息推送测试点

    消息推送对象1.单个推送2.多个推送3.及安卓和IOS渠道推送ps: 注意生产环境和测试环境的分开,避免问题 消息...

  • iOS 远程推送通知

    iOS 远程推送通知 分分钟搞定IOS远程消息推送 iOS推送通知的实现步骤 推送通知iOS客户端编写实现及推送服...

  • Xcode10和iOS12踩坑

    Xcode10和iOS12踩坑

网友评论

      本文标题:iOS模拟器推送测试及踩坑

      本文链接:https://www.haomeiwen.com/subject/anpnoltx.html