在Mavericks iOS模拟器中推送通知

sud*_*udo 25 iphone push-notification ios-simulator osx-mavericks

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

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

Kev*_*tre 41

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

截图2

截图1

截图3

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

截图4

  • 谢谢你或者这个.但是如何在模拟器中获得设备令牌?我仍然收到消息:"ailed to register with error:Error Domain = NSCocoaErrorDomain Code = 3010"模拟器中不支持远程通知"UserInfo = 0x7fefba842250 {NSLocalizedDescription =模拟器中不支持远程通知}" (12认同)
  • 这个答案是关于*本地*通知,而不是*远程*(又名"推送")通知."本地通知"是指您在通知屏幕上看到的UI,可以由本地代码触发.True*Push*Notifications,指一种网络活动,可能会或可能不会在您的通知屏幕上显示通知.因此,尽管在旧版iOS上支持*Local*通知,但在模拟器上iOS10之前不支持true*Push*通知.苹果因为有这么令人困惑的术语而感到羞耻.更多:http://stackoverflow.com/a/38210747/353178 (4认同)

Noa*_*oon 23

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


mut*_*.me 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}.所以,你最好的选择仍然是使用一个设备.


iGa*_*hah 13

耶!!随着XCode 11.4的发布,现在也可以在模拟器中接收推送通知了。苹果的最新版本说,

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

在模拟器中,将 APNs 文件拖放到目标模拟器上。该文件必须是具有有效 Apple 推送通知服务负载的 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"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 您也可以使用终端来完成此操作。只需输入以下命令: xcrun simctl push <simulatorDeviceIdentifier> <pathTopayloadfile> (2认同)

小智 7

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

  • 我也看到了,但我也想确保我的服务器正确发送通知,这只允许你发送假的. (2认同)

mki*_*irk 5

更新XCode8 GM Release

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

remote. 
notifications are not.
supported in the simulator.
Run Code Online (Sandbox Code Playgroud)

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

<淡出...>

原帖

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

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

我还验证了我们正在AppDelegate中注册注册块.

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