在Mavericks iOS模拟器中推送通知

时间:2014-02-12 22:30:05

标签: iphone push-notification ios-simulator osx-mavericks

我找不到任何关于此的内容,我从未对推送通知做过任何事情(但我清楚地知道它们是如何工作的)。在小牛队,现在OS X可以从网站等各种东西接收推送通知,iPhone模拟器可以接收推送通知吗?我从2013年中期找到了很多答案,早些时候说“不”,但所有这些都已经过时了,因为最近Mavericks刚推出了新的推送功能。

我即将开始为应该使用推送通知的学校项目开发应用程序,除非我想要便宜并且只是轮询服务器。我知道你需要一个iOS开发者帐户来使用推送通知,但是如果我可以在我的计算机上进行测试,它会让我的生活变得更轻松。

8 个答案:

答案 0 :(得分:41)

iOS 8和Xcode 6确实为推送通知添加了一些额外的集成。如果您选择iPhone 6或iPhone 6 Plus模拟器,您的应用程序现在将显示在具有全功能通知设置屏幕的设置下(请参阅附件),并将在首次请求推送通知权限时显示应用程序模式。这仅适用于iPhone 6和iPhone 6 Plus模拟器。

Screenshot 2

Screenshot 1

Screenshot 3

但是,在iOS 8中,您仍然会在控制台中收到消息,因为“模拟器中不支持远程通知”,因此您只能使用设备。

Screenshot 4

答案 1 :(得分:21)

不,在模拟器中仍然没有支持推送通知的API。你必须使用一个设备。

答案 2 :(得分:18)

即使iPhone 6和iPhone 6+模拟器设置了推送通知,甚至显示推送通知提示,尝试从模拟器注册推送通知仍然会失败Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x7fc786b4af90 {NSLocalizedDescription=remote notifications are not supported in the simulator}。所以,你最好的选择仍然是使用设备。

答案 3 :(得分:9)

是啊!随着 XCode 11.4 的发布,现在也可以在Simulator中接收推送通知。 苹果的最新版本说,

模拟器支持模拟远程推送通知,包括 后台内容获取通知。

在“模拟器”中,将APNs文件拖放到目标模拟器上。 该文件必须是带有有效Apple Push Notification的JSON文件 服务有效负载,包括“ aps”键。

它还必须包含一个顶级的“模拟器目标捆绑包”,其中包含 与目标应用程序的包标识符匹配的字符串值。

参考链接:https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes

示例有效负载文件,

{
    "Simulator Target Bundle": "com.yourOrganization.appName",
    "aps": {
        "alert": "This is a test notification!",
        "badge": 5,
        "sound": "default"
    }
}

@note:在上述有效负载的“模拟器目标捆绑包” 中提及应用程序的捆绑包标识符。

将上述json文件拖放到目标模拟器上将显示通知并设置徽章。

答案 4 :(得分:7)

如果您想在iOS模拟器中模拟推送通知,可以使用此库:https://github.com/acoomans/SimulatorRemoteNotifications

答案 5 :(得分:5)

更新XCode8 GM Release

日志:推送通知现在因旧的难以忘怀的诗歌而失败:

remote. 
notifications are not.
supported in the simulator.

我现在质疑自己和我的理智。这个我一直希望的功能,并且在我手中,或者我想到了一会儿。这一切都只是一场梦吗?我们中的任何人真的在这里吗?

<淡出...>

原帖

从iOS10测试版(XCode版本8.0 beta(8S128d))开始,模拟器似乎正在获得推送通知。请注意,虽然在iOS10之前,设备可能会收到本地通知,但他们没有收到推送通知。

我没有任何关于此的官方消息来源,只是传闻,依赖于曾经失败的推送通知的功能现在在iPhone 5,5s,6,6 +模拟器上取得了成功。

我还确认我们正在点击AppDelegate中的注册块。

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
  NSLog(@"Successfully registered!");
  doSomething(notificationSettings);
}

答案 6 :(得分:3)

期待在iOS 10发布时在模拟器中使用远程通知。

与此同时,我使用Xcode命令行来测试通知行为:

p [((CustomAppDelegateClass *)((UIApplication *)[UIApplication sharedApplication]).delegate) application:[UIApplication sharedApplication] didReceiveRemoteNotification:@{@"aps": @{@"alert": @"Alert Message"}, @"info": @{@"object": @"value"}}];

答案 7 :(得分:1)

现在可以在模拟器中接收推送通知(带有声音和徽章计数)

步骤1:-创建项目(Xcode 11.4 beta)

第2步:-导入UserNotifications和registerForPushNotifications

第3步:-如下创建JSON文件(payload.apns)

{
    "Simulator Target Bundle": "metiz.DemoSimPushnotification",
    "aps": {
        "title": "Xcode 11.4 Beta Update",
        "alert": "Push notification in simulator - take a look",
        "sound": "default",
        "badge": 1
    }
}

步骤4:-打开终端写入命令$ xcrun simctl push com.example.myapp ExamplePush.apns”

<设备> 将会被设备标识符代替。

com.example.myapp ”将被您项目的包标识符替换

ExamplePush.apns ”将替换为我们的apns文件的文件名。

像这样:-

$ xcrun simctl push 4F19A097-DAE2-4298-99EB-23D4F2DBAF97 metiz.DemoSimPushnotification负载.apns

现在,按Enter键!看魔术!

参考链接:-

https://www.metizsoft.com/blog/testing-push-notification-on-ios-simulator