WatchOS 3 在收到推送通知时崩溃
Posted
技术标签:
【中文标题】WatchOS 3 在收到推送通知时崩溃【英文标题】:WatchOS 3 crash upon receiving push notification 【发布时间】:2016-09-28 05:45:48 【问题描述】:我有一个配置为接收远程通知的应用。在 ios 10 发布之前,iOS 和 WatchOS 端一切正常(推送通知使用本地化消息和自定义声音)
在 iOS 10 和 WatchOS 3 发布后,我不得不添加代码,使用 UserNotification 框架请求推送权限(否则系统不会提供推送令牌,即使旧代码未被弃用)
最糟糕的是,如果我在远程通知到达时运行手表应用程序 - 手表将重新启动并显示苹果徽标。所以推送通知不会导致应用程序本身崩溃,它会导致整个手表操作系统崩溃。有什么想法吗?
【问题讨论】:
【参考方案1】:你检查过你的应用能力和证书都OK了吗?
我的一个应用有类似的设置(使用远程通知),我不需要更新通知注册代码来使用新的 UserNotification 框架 - 它在 iOS10 上和以前一样工作。
Xcode 8 在尝试帮助管理您的证书方面略有不同,也许有些事情搞砸了?
【讨论】:
证书正在运行,因为 iPhone 能够在解锁屏幕的情况下接收推送通知。但是当屏幕被锁定时 - 推送被发送到 Apple Watch,重启是在手表上打开配套应用程序 您的手表应用中是否有可能导致崩溃的通知处理程序?我还没有考虑实现它,所以我只是在手表上看到一个“正常”的通知,而不用做任何事情。 我试过有无,系统在我的方法有机会执行之前就崩溃了 恐怕没有更多的想法了 :( 祝你好运,如果我能以任何方式提供更多帮助,请告诉我【参考方案2】:我遇到了同样的问题,导致崩溃的原因是用户信息的“url”值为空。我要求我的后端开发人员将其设为空字符串,一切正常
【讨论】:
url 值在哪里?在 APNS 有效载荷中?【参考方案3】:发现一个问题。跟随有效载荷会导致 Apple Watch 重启
aps =
alert =
"loc-args" = (
Test,
"<null>",
Test,
4147
);
"loc-key" = "test";
;
category = "test";
sound = default;
;
如果我将 "
【讨论】:
以上是关于WatchOS 3 在收到推送通知时崩溃的主要内容,如果未能解决你的问题,请参考以下文章