iOS 10 条通知不会出现在锁定屏幕上

iOS 10 Notifications don't appear on the lock screen

我们正在开发 iOS 应用程序并已实施新的 UNNotificationServiceExtension。我们已经覆盖

func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void)

我们调用完成处理程序。

我们发送 "mutable-content" = 1

的推送

在开发过程中,在开发者设备上一切正常。 但是,当我们将应用程序发布到某些设备上的商店时,用户只收到一个通知,而其他所有通知都没有收到。

所以我拿了一个没有显示推送通知的设备并检查了日志:

Sep 16 15:47:15 my-iPhone SpringBoard(UserNotificationsServer)[775] <Info>: Received incoming message on topic my.app.com: <private>  
Sep 16 15:47:15 my-iPhone pkd[105] <Info>: match returned 1 plug-ins  
Sep 16 15:47:15 my-iPhone accountsd(AccountsDaemon)[104] <Notice>: __48-[ACDServer listener:shouldAcceptNewConnection:]_block_invoke.246 (482) "Idle-exit-preventing transaction ended!"  

之后没有任何有意义的消息。 如果我使用相同的推送证书和有效负载向我的开发设备发送相同的推送,那么它会出现在屏幕上,并且在日志中会有更多消息:

Sep 16 15:27:12 my-iPhone SpringBoard(UserNotificationsServer)[2727] <Info>: Received incoming message on topic my.app.com: <private>  
Sep 16 15:27:12 my-iPhone pkd[4005] <Info>: match returned 1 plug-ins  
Sep 16 15:27:12 my-iPhone SpringBoard(Foundation)[2727] <Notice>: calling plugIn beginUsing:  
Sep 16 15:27:12 my-iPhone pkd[4005] <Info>: assigning plug-in <private>(<private>) 4E733350-8D9A-4A6D-8B44-2A4C888E090C to plugin sandbox  
Sep 16 15:27:12 my-iPhone pkd[4005] <Notice>: allowing host 2727 /System/Library/CoreServices/SpringBoard.app/SpringBoard to use plug-in <private>(<private>) uuid=4E733350-8D9A-4A6D-8B44-2A4C888E090C at <private>  
Sep 16 15:27:12 my-iPhone SpringBoard(PlugInKit)[2727] <Info>: preparing plug-in <private>(<private>)

正如您在我的开发设备上看到的那样,它能够调用扩展,但是在非开发设备上它找到了插件(扩展)但不知何故无法启动它。

有人遇到同样的问题吗?

谢谢!

所以在调查后发现 iOS 10 中存在一个阻止启用某些应用程序扩展的错误。 如果用户在更新到 iOS 10 之前更新了应用程序,那么新的扩展程序确实对他有用。

Apple 已发布 iOS 10.0.2 (https://support.apple.com/kb/DL1893?locale=en_US&viewlocale=en_US) 并进行了修复。 升级到 iOS 10.0.2 后,我测试了所有扩展,现在工作正常。